日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET Core项目从xproj+project.json向csproj迁移简介

發布時間:2023/12/4 asp.net 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET Core项目从xproj+project.json向csproj迁移简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

3月7日,微軟發布了Visual Studio 2017 RTM,與之一起發布的還有.NET Core Runtime 1.1.0以及.NET Core SDK 1.0.0,盡管這些并不是最新版,但也已經從preview版本升級到了正式版。所以,在安裝Visual Studio 2017時如果啟用了.NET Core開發的相關功能,那么在安裝完成后,你可以在命令行直接執行dotnet.exe,此時你可以看到.NET Core版本是1.1.0,而如果是執行dotnet.exe --version命令,那么你看到的SDK版本將會是1.0.0(并不帶preview字樣)。

在此介紹如何查看.NET Core SDK版本,主要是源于一件非常有趣的事情,而這件事對于.NET Core項目從老的xproj+project.json遷移到csproj有一定的影響。如果你曾經使用Visual Studio 2015 + .NET Core Tools for Visual Studio + .NET Core SDK開發過項目,并希望在全新的Visual Studio 2017中繼續開發的話,了解一下這方面的內容還是很有必要的。

總的來說,遷移一個.NET Core項目,大致有以下幾個步驟:

  • 遷移準備

  • 使用Visual Studio 2017對項目進行單項升級

  • 在Jenkins CI服務器上安裝最新版的.NET Core SDK

  • 修改Jenkins CI系統編譯任務,成功完成編譯與發布

下面我就以自己的一個開源項目HAL為例,簡單介紹一下各個步驟的做法。

遷移準備

HAL項目本來就是托管在Github上的一個開源項目,為了能夠平滑地實現項目遷移,并確保Jenkins CI能夠正常工作,在進行項目遷移之前,我首先在Github上新建了一個分支(branch)。Github中創建分支的成本是很低的,在一切調試通過之后,將分支合并(merge)到主分支后,直接刪掉就行了。

Github中分支創建完成后,更新本地代碼庫,完成代碼同步。

在Visual Studio 2017中打開并升級.NET Core項目

在我之前有篇簡文中介紹過,在安裝了Visual Studio 2017 RC之后,如何還能繼續在Visual Studio 2015中打開并編譯xproj項目,因為當安裝完Visual Studio 2017后,dotnet.exe已經升級到1.0.0的版本,此時的dotnet.exe已經是使用MSBuild進行項目編譯,它并不認識xproj+project.json這樣的項目類型和文檔組織結構,因此,在Visual Studio 2015中即使能夠打開xproj項目文件,也無法正常編譯。當時的解決方案是,在項目的根目錄級別創建一個global.json文件,在文件中顯式指定.NET Core SDK的版本,使得在項目編譯時,強制使用老版本的.NET Core SDK,于是問題也就得到了解決。對于如何修改global.json以指定SDK的版本,這里就不多介紹了,請參考這篇文章。

對于這個問題,我們可以做一個實驗,假定你的機器上裝有Visual Studio 2015 + .NET Core Tools for Visual Studio 2015 + preview版本的.NET Core SDK,同時裝有Visual Studio 2017。那么,當你直接在命令行執行dotnet.exe --version命令,你會看到,.NET Core SDK的版本為1.0.0:

如果你進入到一個在global.json中指定了SDK版本的項目的根目錄下,同樣執行dotnet.exe --version命令,你會發現,此時的SDK版本卻是global.json中指定的版本:

OK,如果你之前有修改global.json文件使得xproj項目能夠繼續在Visual Studio 2015中打開并編譯的話,現在就需要去掉global.json文件中對SDK版本的顯式聲明,否則,在Visual Studio 2017中進行項目遷移的時候,將無法正常完成。因為此時Visual Studio會使用舊版本的SDK,而這個版本的SDK沒有migrate功能。

總的來說,在Visual Studio 2017中遷移xproj還是比較平滑穩定的,一般不會遇到稀奇古怪的問題,只需要確認單向遷移就行了。在遷移完成后,會產生新的解決方案文件(sln)。

在Jenkins服務器上安裝新的.NET Core SDK

當Visual Studio 2017成功完成項目遷移之后,就可以把代碼提交到Github上的臨時分支了,這樣就能在Jenkins上進行構建測試。在此之前,需要安裝新版本的.NET Core SDK。安裝過程很簡單,到dotnet官方網站上根據Jenkins master或者slave的操作系統選擇相應的.NET Core SDK進行下載安裝即可。安裝完成后,可以使用dotnet --version命令,確認.NET Core SDK已經正確安裝。

修改Jenkins系統編譯任務

就HAL項目而言,我首先在Jenkins中克隆了編譯任務(build job),然后修改這個編譯任務,使得它能從Github中的臨時分支獲取代碼。整個過程也沒有出現什么難以解決的問題,原有的dotnet restore/build/pack等命令也能夠正常繼續使用,不過你會發現,編譯過程已經使用Microsoft Build Engine(MSBuild)了。

需要注意的是,原來基于xUnit的dotnet test,有一個-xml的隱藏參數,它能夠產生JUnit XML格式的單元測試結果報告,但在.NET Core SDK 1.0下,這個參數就不能用了,有個解決辦法是使用-l(--logger)參數,它能夠產生MSTest格式的單元測試報告,此時,在Jenkins中安裝一個MSTest的插件,就能夠繼續將測試報告顯示在主頁上。

最后,在Github中,將臨時分支合并到主線分支,并在Jenkins中手動修改主線分支對應的build job,最后把克隆的build job刪除即可。不建議繼續沿用克隆的build job,那樣會造成編譯版本的混亂。

原文地址:http://www.cnblogs.com/daxnet/p/6575634.html


.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注

總結

以上是生活随笔為你收集整理的.NET Core项目从xproj+project.json向csproj迁移简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。