[英]Solution builds in Visual Studio but Jenkins throws an assets exception
我有一個包含單目標和多目標項目的解決方案。 可以在Visual Studio 2017和VS 2017開發人員命令提示符中構建該解決方案,而不會出現問題。
我通過VS 2017開發人員命令提示符中的以下代碼構建解決方案
msbuild MySolution.sln /t:Rebuild /p:Configuration=Release
我想在詹金斯做這個過程。 然后我在詹金斯下面添加了命令。
pushd "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools"
call VsDevCmd.bat
msbuild "C:\Workspace\My Solution\MySolution.sln" /t:Build /p:Configuration=Release
當我構建Jenkins項目時,它將引發異常。
C:\Program Files\dotnet\sdk\2.1.101\Sdks\Microsoft.NET.Sdk\build\
Microsoft.PackageDependencyResolution.targets(327,5): error : Assets file
'C:\Workspace\My Solution\Source\MyProject\obj\project.assets.json' not found.
Run a NuGet package restore to generate this file.
非常感謝
Visual Studio通常會為您還原nuget程序包(可以在設置中將其關閉)。
從命令行構建解決方案是另一回事。 您不是在使用Visual Studio,而是在使用簡單的舊版MSBuild。 MSBuild不了解您的nuget軟件包。
因此,您必須首先手動還原nuget軟件包。
pushd "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools"
call VsDevCmd.bat
nuget restore "C:\Workspace\My Solution\MySolution.sln"
msbuild "C:\Workspace\My Solution\MySolution.sln" /t:Build /p:Configuration=Release
Jenkins無法識別msbuild命令。 當我像下面那樣更改代碼時,它開始工作。
C:\nuget.exe restore "C:\Workspace\My Solution\MySolution.sln"
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\amd64\MSBuild.exe" "C:\Workspace\My Solution\MySolution.sln" /t:Build /p:Configuration=Release;VisualStudioVersion=15.0
我添加了nuget restore命令,並使用msbuild.exe的完整路徑更改了msbuild命令。 最后,我將VisualStudioVersion作為參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.