如果我在计算机上安装 Visual Studio 2017 社区版并将其注册为生成代理,则代理注册的"功能"选项卡将显示以下环境变量:
VisualStudio C:Program Files (x86)Microsoft Visual Studio2017Community
VisualStudio_15.0 C:Program Files (x86)Microsoft Visual Studio2017Community
VisualStudio_IDE C:Program Files (x86)Microsoft Visual Studio2017CommunityCommon7IDE
VisualStudio_IDE_15.0 C:Program Files (x86)Microsoft Visual Studio2017CommunityCommon7IDE
但是,如果我安装 Visual Studio 2015 Express 并将其注册为生成代理,则不会获得等效变量。这是为什么呢?
更新
@starain-MSFT回避了这个问题;VS2015 Express 不会安装代理配置脚本所需的所有注册表项来选取安装。手动注册上面的环境变量会欺骗代理池识别msbuild, visualstudio
的功能,所以现在我可以愉快地触发该代理上的构建。
但是,它不会欺骗Visual Studio Build任务。我在执行时收到以下日志警告;
##[warning]Visual Studio was not found. Try installing a supported version of Visual Studio. See the task definition for a list of supported versions.
然后,它将还原回 MSBuild 以执行工作流。幸运的是,就我而言,它成功完成了,因为我正在构建一个.sln
。我只是想警告其他人,他们可能会遇到类似的问题。
[agent folder]binpowershell
文件夹中有一些用于添加功能的PowerShell文件,可以检查它们的源代码。
根据Add-VisualStudioCapabilities.ps1
中的代码,它检查HKEY_LOCAL_MACHINESOFTWARE[WOW6432Node]MicrosoftVisualStudio[14.0]ShellFolder and InstallDir
。因此,您可以检查注册表中的键和值。
在生成代理上安装新软件后,必须先重新启动代理,然后才能发现新功能。