当我从"托管"代理更改为">托管 VS2017"时,我的 Azure DevOps 构建的任务找不到我的解决方案路径。
文件夹组织是否从一个代理更改为另一个代理?
我的 C# 解决方案曾经使用 .NET Framework 4.6 运行,我现在参考 4.7.1 版本。这就是为什么我显然需要使用"托管VS2017"代理而不是默认的"托管"代理。但是,使用 gulpfile 的任务在尝试生成我的解决方案时失败。我尝试使用诊断执行构建,但我在第一个 MSbuild 命令中除了">系统找不到指定的路径"之外没有获得更多信息。
---
[command]C:npmprefixgulp.cmd CI-default --gulpfile D:a1ssourceback-endgulpfile.js
[15:41:53] Using gulpfile D:a1ssourceback-endgulpfile.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)MSBuild14.0BinMSBuild.exe" "D:a1ssourceback-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 的本地计算机上执行此操作时,它实际上会执行(
这是因为Visual Studio 2015默认如果我更改 Azure DevOps 代理,为什么无法访问我的 MSbuild 命令路径?
安装在"托管"代理上,默认情况下使用Visual Studio 2017托管VS2017。
但是,MSBuild 14.0
和15.0
的路径是不同的。
MSBuild 14.0 的默认路径是 C:Program Files (x86)MSBuild14.0BinMSBuild.exe
。
但 MSBuild 15.0 的默认路径是 C:Program Files (x86)Microsoft Visual Studio2017EnterpriseMSBuild15.0BinMSBuild.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.0Bin\MSBuild.exe
希望这有帮助。