Вы можете попробовать , вызывая msbuild.exe напрямую вместо использования VsDevCmd.bat.
Go Jenkins -> Manage Jenkins -> Global Tool Configuration -> MSBuild
, установите путь к msbuild: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\msbuild.exe
Что касается полученной ошибки, на мой взгляд, есть две возможные причины:
1. В процессе сборки версия msbuild и VS распознаются как версия V12.0 (Visual Studio 2013). Установка пути msbuild напрямую, как я предлагаю выше, может решить эту проблему.
См. Обычное содержимое в файле проекта веб-приложения Asp.net (VS2017):
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
Если $(VisualStudioVersion)
распознается как 12.0
, тогда $(VSToolsPath)
будет $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0
, тогда msbuild не найдет Microsoft.WebApplication.targets
, который вызвал эту проблему.
2. Что-то сломанов вашем xx.csproj
файле или проекте взято из VS2013. Проверьте, можете ли вы найти v12.0
в вашем файле enter code here
xx.csproj.
Если этот проект создан VS2017, эта проблема больше не будет возникать после того, как вы установили правильный путь msbuild. Если этот проект создается в VS2013 один раз, вам необходимо обновить файл xx.csproj
. Надеюсь, все выше помогает:)