如果我更改 Azure DevOps 代理,为什么无法访问我的 MSbuild 命令路径



当我从"托管"代理更改为">托管 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 的本地计算机上执行此操作时,它实际上会执行(

如果我更改 Azure DevOps 代理,为什么无法访问我的 MSbuild 命令路径?

这是因为Visual Studio 2015默认

安装在"托管"代理上,默认情况下使用Visual Studio 2017托管VS2017

但是,MSBuild 14.015.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

希望这有帮助。

最新更新