Visual Studio 2017 .Net Core升級問題排除
問題一,Team Service 無法正常繫結
Vs2017捨棄了project.json檔,並改回副檔名.csproj的專案檔 ps:在Vs2015是.xproj,所以在開啟專案時會針對舊設定作升級動作。以下圖為例
升級後,project.json移除及副檔名變更
此動作,若在未繫結的狀態,可以正常升級,但若是在繫結的狀態下,升級後再打開,就會出現專案變成新增狀態,或是方案內的專案無法正常載入等。
解決方式
在測試了一堆有的沒的方法後,都沒用 例:先簽出再升級等,最後放大絕,將Team Service上的專案刪除,以未繫結的專案升級後再重新加入即可。問題二,MsBuild無法發行package
在Vs2017上建置及發行.NetCore都正常,但在Jenkins使用MsBuild指令時,出現無法建置的錯誤。
指令:
msbuild.exe /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:configuration=Release D:\NetCore2017\NetCore2017\NetCore2017.csproj
因為Vs2017的.NetCore 專案檔為新的format,需使用MsBuild 15.0建置,而目前Jenkins上預設是14.0。
切換路徑 cd C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin,再測試後,得到另一錯誤為取不到目錄
Ps:相同的參數,若建置的是原.netFramework的專案,則沒有問題。
解決方式
根據錯誤訊息,在發行時會參考.netCore的建置檔案,路徑如下:C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeployPackage.targets
看完後裡面的設定後,判斷剛的錯誤為DesktopBuildPackageLocation未指定,還有另一個是會檢查DeployIisAppPath是否有值,所以需增加這兩個參數,完整如下:
msbuild.exe /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:configuration=Release /p:DeployIisAppPath="NetCore2017" /p:DesktopBuildPackageLocation="bin\Release\package.zip" D:1\NetCore2017\NetCore2017\NetCore2017.csproj