Visual studio 2015 私人生成代理未识别Visual Studio 2015 Express

Visual studio 2015 私人生成代理未识别Visual Studio 2015 Express,visual-studio-2015,azure-devops,azure-pipelines,azure-devops-self-hosted-agent,Visual Studio 2015,Azure Devops,Azure Pipelines,Azure Devops Self Hosted Agent,如果我在计算机上安装Visual Studio 2017 Community edition并将其注册为生成代理,则代理注册的“功能”选项卡将显示以下环境变量: VisualStudio C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\ VisualStudio_15.0 C:\Program Files (x86)\Microsoft Visual Studio\2017\Commun

如果我在计算机上安装Visual Studio 2017 Community edition并将其注册为生成代理,则代理注册的“功能”选项卡将显示以下环境变量:

VisualStudio            C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\
VisualStudio_15.0       C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\
VisualStudio_IDE        C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\
VisualStudio_IDE_15.0   C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\
但是,如果我安装Visual Studio 2015 Express并将其注册为构建代理,则无法获得等效的变量。为什么会这样

使现代化 @starain MSFT回避了这个问题;VS2015 Express没有安装代理配置脚本获取安装所需的所有注册表项。手动注册上面的环境变量会愚弄代理池,使其能够识别功能
msbuild、visualstudio
,因此现在我可以在该代理上触发构建

然而,它并没有愚弄VisualStudio构建任务。我在执行时收到以下日志警告

##[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]\bin\PowerShell
文件夹中有一些用于添加功能的PowerShell文件,您可以检查它们的源代码


根据添加VisualStudioCapabilities.ps1中的代码,它检查
HKEY\U LOCAL\U MACHINE\SOFTWARE\[WOW6432Node]\Microsoft\VisualStudio\[14.0]\ShellFolder和InstallDir
。所以你可以检查注册表中的键和值。

我没说清楚。机器1:安装VS2017社区,注册为生成代理,功能选项卡显示为可生成。计算机2:安装VS2015 Express,注册为生成代理,“功能”选项卡不显示为可生成。它们是不同的计算机,都在安装Visual Studio后注册为生成代理。请尝试VS 2015 Community而不是Express。Express可能没有安装所有必要的组件。恐怕没有。许可条件禁止员工超过300人的组织安装Community edition。我的问题是关于VS 2015 Express的。Express确实安装了必要的组件,因为我可以通过将这些变量设置为系统环境变量来破解系统,构建工作正常。我在问为什么代理不承认VS 2015 Express是合法的VS安装。这是出于设计还是代理配置脚本中的错误?就是这样!由于某些原因,VS2015 Express没有安装
ShellFolder
InstallDir
键!我担心代理脚本会识别它,但拒绝注册它,因为我们不允许将其用于自动构建。我现在觉得更舒服了。原来这还不是全部。当我将“Visual Studio Build”任务添加到进程时,它现在会执行,但如果我更仔细地查看日志,我会看到以下消息:“##[警告]找不到Visual Studio。请尝试安装受支持的Visual Studio版本。有关受支持版本的列表,请参阅任务定义。”然后,它会返回到使用MSBuild进行生成。它之所以有效,是因为我正在构建一个
.sln
;希望我不必构建
.proj
。VS 2017的正确键和值是什么?我在注册表中看不到任何shellFolder或InstallDir文件夹?