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

时间:2015-08-05 18:41:19

标签: tfs tfs2015 azure-pipelines

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

  

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

如何解决这个问题?

12 个答案:

答案 0 :(得分:46)

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

答案 1 :(得分:24)

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

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

不幸的是,消息本身的措辞严重,这才是真正的问题。

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

  

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

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

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

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

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

  • 您从下拉列表中选择一个队列。
  • TFS尝试通过查找与该队列对应的池来构建,并且在那里找不到任何代理,所以你得到一个愚蠢无用的red-herring错误消息。

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

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

  

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

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

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

Enter image description here

答案 2 :(得分:7)

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

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

答案 3 :(得分:1)

在我的例子中,在安装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

我没有必要安装完整的Visual Studio IDE。这个问题的选定答案是完全错误的......

答案 4 :(得分:0)

我使用Xcode构建slave来构建Xcode项目。

我在TFS 2015中收到的错误消息是

  

“找不到具有以下功能的代理:xcode”

我注册了OS X on-premise build slave

在“注册代理”步骤中,我由构建代理命名:

>> Register Agent:

Enter agent pool (press enter for default) > My-Xcode-Agent-Pool

因此,我必须在构建设置中选择“My-Xcode-Agent-Pool”作为默认队列。资料来源: Microsoft-hosted agents

答案 5 :(得分:0)

虽然以前的答案都没有对我有用,Simon_Weaver的帖子指出了我正确的方向。

他提到vstest在他的名单中,但它并不在我的名单中。我通过添加一个名为" vstest"的用户定义的功能来修复它。使用Visual Studio 2017下的vstest.console.exe的完整路径。

答案 6 :(得分:0)

我遇到了这个问题,结果发现我的发布过程选择了"错误"剂。只需编辑版本并设置正确的代理队列

即可

enter image description here

答案 7 :(得分:0)

您必须在构建计算机(已安装代理程序)上安装相应的Visual Studio版本。这将为服务器添加所需的工具和功能。

Visual Studio是必需的,因为它会安装构建项目所需的所有构建目标。

安装后,您必须重新启动代理Windows服务,以便刷新功能列表。

由于您要在构建计算机上使用Visual Studio安装进行构建,因此该安装不会被视为附加许可证。

答案 8 :(得分:0)

最终对我有用的是转到下载代理并运行的位置:

./config.cmd删除,然后./config.cmd从代理目录内的命令行重新安装代理。

Download agent

答案 9 :(得分:0)

每个Microsoft https://msdn.microsoft.com/en-us/ie/bb399135(v=vs.94)

  

您必须在构建代理上安装团队在其开发计算机上使用的Visual Studio版本。请参阅安装Visual Studio。您还必须安装开发机器上安装的所有其他软件和组件,以及构建应用程序所需的其他软件和组件。

答案 10 :(得分:0)

就我而言,在安装MSBuild之后,重新启动所有Azure服务(在Windows服务中)并且可以正常工作。无需安装完整的Visual Studio

答案 11 :(得分:-2)

TFS的一般解决方案:

解决构建服务器上大多数问题的常用方法是安装Visual Studio&构建服务器上的所有依赖包。

使用VSTS时的替代解决方案

当您选择在哪里构建时,请使用" Hosted" 然后构建将起作用。

如何使其发挥作用的指南可在以下网址找到: Deploy an agent on Windows for TFS 2015

检查代理部分,其中包含有关功能的信息。

更新:

获得vsts中的功能列表(azuredevops) 您可能需要在构建代理计算机上安装所需的软件。

PS请注意,如果需要,您可能需要许可sw。