簡體   English   中英

解決方案在Visual Studio中構建,但Jenkins拋出資產異常

[英]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作為參數。

謝謝@ c-johnson

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM