错误'找不到具有以下功能的代理:msbuild,visualstudio,vstest'

Jea*_*nez 66 tfs tfs-2015 azure-pipelines

我正在使用TFS 2015设置新的构建服务器,在配置代理之后,当我尝试对构建进行排队时,我收到了以下错误:

找不到具有以下功能的代理:msbuild,visualstudio,vstest

怎么解决这个问题?

Dan*_*ann 51

在构建代理上安装Visual Studio,然后重新启动构建代理.重新启动构建代理将捕获添加的功能.

  • 为了补充一点,我发现在构建代理服务器上安装新功能后"更新"构建的最快方法是转到管理区域中的代理池集线器(<your tfs server>/tfs/_admin/_AgentPool?hubGroupId = ms.vss-web.account-admin-hub-group),选择代理所在的池,然后右键单击"更新所有代理". (15认同)
  • 我同意,VS不包含在"官方TFS构建部署先决条件"中,但通过查看小线条,实际上它是....它很烦人... https://msdn.microsoft.com/ EN-US /库/ bb399135.aspx?F = 255&MSPPError = -2147217396#ANCHOR_1 (6认同)
  • 没有.没有理由不在构建服务器上安装Visual Studio - 它不包含在许可成本中. (5认同)
  • 它工作,但我想知道是否没有其他解决方法,以避免在开发服务器中安装Visual Studio.谢谢 (4认同)
  • 据您所知,Community Edition是否为Build Server配置提供了必要的先决条件? (3认同)
  • @Jubblerbug建议的"更新所有代理"对我不起作用.Simpy重新启动TFS Build 2017服务器.它重新启动后会自动更新功能.可能只是重新启动TFS Build Windows服务也会这样做.我正在使用Visual Studio Online的TFS Build 2017代理商. (3认同)
  • 不知道为什么,但@Jubblerbug上面提到的更新所有代理的建议对我不起作用,我不得不放弃代理并在安装VS后重新配置它.所以,YMMV. (2认同)

Sim*_*ver 26

注意:首先,您可以在自己的服务器上使用社区版和TFS Express 2015完成所有这些操作(最多可以免费使用五个用户) - 所以不必担心需要使用Visual Studio在线版本或支付Visual Studio Professional.


很容易误解所提供的错误消息,并试图通过疯狂追逐试图调试它.

不幸的是,消息本身只是措辞严厉,这才是真正的问题.

以下是该错误消息的真正含义:

"没有找到具有以下功能的代理:msbuild,visualstudio,vstest.实际上我并没有找到为所选构建队列配置的任何构建代理."

所以你认为这不适用于你,因为你刚刚创建了一个构建代理?

好吧,也许你做了,但这可能发生了:

  • 你创建了一个新的游泳池(除了你以前认为你应该没有其他原因).
  • 然后,您在该池下创建了一个队列.
  • 您运行PowerShell脚本来创建代理,并假设它将它放在刚刚创建的池中 ....
  • 但它没有 - 它把它放在你甚至不使用的'默认'池中......

啊哈!所以这就是你构建时会发生什么:

  • 您从下拉列表中选择一个队列.
  • TFS尝试通过查找与该队列对应的池来构建,并且它在那里找不到任何代理,因此您得到一个愚蠢无用的红鲱鱼错误消息.

当我终于意识到发生了什么时,我刚刚删除了我可爱命名的池+队列,并恢复使用默认池.

下次我将尝试在PowerShell配置期间更多关注此消息:

针对哪个代理池配置此代理?(默认池名称为'default')

您必须在池下创建一个队列,然后您的代理才能开始工作.

如果您的座席中缺少具有某种功能的正版,您可以通过此处显示的"功能"选项卡查看您的座席支持的内容.当然msbuild, visualstudio and vstest都在这里:-)

在此输入图像描述


irh*_*ric 8

默认情况下,在VSO上使用新的构建系统时,它不会选择托管构建选项,这就是我在Stack Overflow中发表这篇文章的方式.如果您习惯使用VSO构建服务器,那么您需要执行以下操作:

通过转到"常规"选项卡并将"默认队列"更改为托管来创建托管构建.更多关于它的限制及其工作原理:https://www.visualstudio.com/get-started/build/hosted-agent-pool


com*_*ius 6

就我而言,安装MSBuild(https://www.visualstudio.com/downloads/,搜索“ Visual Studio 2017的生成工具”)之后,我只需要将MSBuild的路径添加到PATH环境变量中即可。直到我这样做,代理才检测到MSBuild。

C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin
Run Code Online (Sandbox Code Playgroud)

我不必安装完整的Visual Studio IDE。为这个问题选择的答案是完全错误的...

  • 我使用了稍晚些的“ Visual Studio 2019构建工具”,我必须添加的路径是:C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ BuildTools \ MSBuild \ Current \ Bin。是的,不需要完整的Visual Studio。谢谢你的提示。 (2认同)