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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

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

發(fā)布時(shí)間:2023/12/4 asp.net 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET Core项目从xproj+project.json向csproj迁移简介 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

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

總的來(lái)說(shuō),遷移一個(gè).NET Core項(xiàng)目,大致有以下幾個(gè)步驟:

  • 遷移準(zhǔn)備

  • 使用Visual Studio 2017對(duì)項(xiàng)目進(jìn)行單項(xiàng)升級(jí)

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

  • 修改Jenkins CI系統(tǒng)編譯任務(wù),成功完成編譯與發(fā)布

下面我就以自己的一個(gè)開(kāi)源項(xiàng)目HAL為例,簡(jiǎn)單介紹一下各個(gè)步驟的做法。

遷移準(zhǔn)備

HAL項(xiàng)目本來(lái)就是托管在Github上的一個(gè)開(kāi)源項(xiàng)目,為了能夠平滑地實(shí)現(xiàn)項(xiàng)目遷移,并確保Jenkins CI能夠正常工作,在進(jìn)行項(xiàng)目遷移之前,我首先在Github上新建了一個(gè)分支(branch)。Github中創(chuàng)建分支的成本是很低的,在一切調(diào)試通過(guò)之后,將分支合并(merge)到主分支后,直接刪掉就行了。

Github中分支創(chuàng)建完成后,更新本地代碼庫(kù),完成代碼同步。

在Visual Studio 2017中打開(kāi)并升級(jí).NET Core項(xiàng)目

在我之前有篇簡(jiǎn)文中介紹過(guò),在安裝了Visual Studio 2017 RC之后,如何還能繼續(xù)在Visual Studio 2015中打開(kāi)并編譯xproj項(xiàng)目,因?yàn)楫?dāng)安裝完Visual Studio 2017后,dotnet.exe已經(jīng)升級(jí)到1.0.0的版本,此時(shí)的dotnet.exe已經(jīng)是使用MSBuild進(jìn)行項(xiàng)目編譯,它并不認(rèn)識(shí)xproj+project.json這樣的項(xiàng)目類型和文檔組織結(jié)構(gòu),因此,在Visual Studio 2015中即使能夠打開(kāi)xproj項(xiàng)目文件,也無(wú)法正常編譯。當(dāng)時(shí)的解決方案是,在項(xiàng)目的根目錄級(jí)別創(chuàng)建一個(gè)global.json文件,在文件中顯式指定.NET Core SDK的版本,使得在項(xiàng)目編譯時(shí),強(qiáng)制使用老版本的.NET Core SDK,于是問(wèn)題也就得到了解決。對(duì)于如何修改global.json以指定SDK的版本,這里就不多介紹了,請(qǐng)參考這篇文章。

對(duì)于這個(gè)問(wèn)題,我們可以做一個(gè)實(shí)驗(yàn),假定你的機(jī)器上裝有Visual Studio 2015 + .NET Core Tools for Visual Studio 2015 + preview版本的.NET Core SDK,同時(shí)裝有Visual Studio 2017。那么,當(dāng)你直接在命令行執(zhí)行dotnet.exe --version命令,你會(huì)看到,.NET Core SDK的版本為1.0.0:

如果你進(jìn)入到一個(gè)在global.json中指定了SDK版本的項(xiàng)目的根目錄下,同樣執(zhí)行dotnet.exe --version命令,你會(huì)發(fā)現(xiàn),此時(shí)的SDK版本卻是global.json中指定的版本:

OK,如果你之前有修改global.json文件使得xproj項(xiàng)目能夠繼續(xù)在Visual Studio 2015中打開(kāi)并編譯的話,現(xiàn)在就需要去掉global.json文件中對(duì)SDK版本的顯式聲明,否則,在Visual Studio 2017中進(jìn)行項(xiàng)目遷移的時(shí)候,將無(wú)法正常完成。因?yàn)榇藭r(shí)Visual Studio會(huì)使用舊版本的SDK,而這個(gè)版本的SDK沒(méi)有migrate功能。

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

在Jenkins服務(wù)器上安裝新的.NET Core SDK

當(dāng)Visual Studio 2017成功完成項(xiàng)目遷移之后,就可以把代碼提交到Github上的臨時(shí)分支了,這樣就能在Jenkins上進(jìn)行構(gòu)建測(cè)試。在此之前,需要安裝新版本的.NET Core SDK。安裝過(guò)程很簡(jiǎn)單,到dotnet官方網(wǎng)站上根據(jù)Jenkins master或者slave的操作系統(tǒng)選擇相應(yīng)的.NET Core SDK進(jìn)行下載安裝即可。安裝完成后,可以使用dotnet --version命令,確認(rèn).NET Core SDK已經(jīng)正確安裝。

修改Jenkins系統(tǒng)編譯任務(wù)

就HAL項(xiàng)目而言,我首先在Jenkins中克隆了編譯任務(wù)(build job),然后修改這個(gè)編譯任務(wù),使得它能從Github中的臨時(shí)分支獲取代碼。整個(gè)過(guò)程也沒(méi)有出現(xiàn)什么難以解決的問(wèn)題,原有的dotnet restore/build/pack等命令也能夠正常繼續(xù)使用,不過(guò)你會(huì)發(fā)現(xiàn),編譯過(guò)程已經(jīng)使用Microsoft Build Engine(MSBuild)了。

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

最后,在Github中,將臨時(shí)分支合并到主線分支,并在Jenkins中手動(dòng)修改主線分支對(duì)應(yīng)的build job,最后把克隆的build job刪除即可。不建議繼續(xù)沿用克隆的build job,那樣會(huì)造成編譯版本的混亂。

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


.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺(tái)或掃描二維碼關(guān)注

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。