Решение собирается в Visual Studio, но Дженкинс выдает исключение активов

У меня есть решение, которое состоит из одноцелевых и многоцелевых проектов. Решение может быть встроено в 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

Когда я строю проект Дженкинс, это исключение.

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. 

большое спасибо

2 ответа

Решение

Дженкинс не может распознать команду 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 и изменил команду msbuild, указав полный путь к msbuild.exe. Наконец, я поставил VisualStudioVersion в качестве параметра.

Спасибо C Johnson

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
Другие вопросы по тегам