当我从“托管”代理更改为“托管VS2017”时,我的Azure DevOps构建任务无法找到我的解决方案路径。
文件夹组织是否从代理更改为另一个?
我的C#解决方案以前用.NET Framework 4.6运行,我现在引用4.7.1版本。这就是为什么我显然需要使用“Hosted VS2017”代理而不是默认的“托管”代理。但是在尝试构建我的解决方案时,使用gulpfile的任务失败了。我尝试使用诊断程序执行构建,但我得到的信息不再是“系统无法找到指定的路径”。在我的第一个MSbuild命令中。
---
[command]C:\npm\prefix\gulp.cmd CI-default --gulpfile D:\a\1\s\source\back-end\gulpfile.js
[15:41:53] Using gulpfile D:\a\1\s\source\back-end\gulpfile.js
[15:41:53] Starting 'CI-default'...
[15:41:53] Starting 'Publish-All-Projects'...
[15:41:53] Starting 'Build-Solution'...
[15:41:53] Using automatic maxcpucount
The system cannot find the path specified.
[15:41:53] { Error: Command failed: "C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" "D:\a\1\s\source\back-end\******.sln" "/target:Build" /verbosity:minimal /toolsversion:14.0 /nologo /maxcpucount /property:Configuration="Release"
The system cannot find the path specified.
at ChildProcess.exithandler (child_process.js:294:12)
at ChildProcess.emit (events.js:189:13)
at maybeClose (internal/child_process.js:970:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
killed: false,
code: 1,
signal: null,
cmd:
'"C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\MSBuild.exe" "D:\\a\\1\\s\\source\\back-end\\ALE.sln" "/target:Build" /verbosity:minimal /toolsversion:14.0 /nologo /maxcpucount /property:Configuration="Release"' }
---
构建在此步骤失败但应该正确执行(实际上当我使用默认的“托管”代理或使用Visual Studio在我的本地计算机上执行时)
如果我更改Azure DevOps代理,为什么我的MSbuild命令路径无法访问?
这是因为Visual Studio 2015默认安装在“托管”代理上,默认情况下托管VS2017与Visual Studio 2017。
但是,MSBuild 14.0
和15.0
的路径是不同的。
MSBuild 14.0的默认路径是C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe
。
但是MSBuild 15.0的默认路径,路径是C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe
。
因此,要解决此问题,您应该更改CMD脚本中的MSBuild:
cmd:
'"C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\MSBuild.exe"
至
cmd:
C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\MSBuild\\15.0\Bin\\MSBuild.exe
希望这可以帮助。