73

我正在使用 TFS 2015 设置新的构建服务器,并且在配置代理后,当我尝试将构建排队时出现此错误:

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

如何解决?

4

13 回答 13

59

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

于 2015-08-05T18:54:18.357 回答
28

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


很容易误解所提供的错误消息,并大肆尝试调试它。

不幸的是,消息本身的措辞很糟糕,这才是真正的问题。

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

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

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

好吧,也许你做到了,但可能发生了以下情况:

  • 您创建了一个新池(除了您认为您应该这样做之外没有其他原因)。
  • 然后,您在该池下创建了一个队列。
  • 您运行了 PowerShell 脚本来创建一个代理,并假设它把它放在您刚刚创建的池中......
  • 但它没有 - 它把它放在你甚至没有使用的“默认”池中......

啊哈!因此,当您构建时会发生以下情况:

  • 您从下拉列表中选择一个队列。
  • TFS 尝试通过查找与该队列对应的池来构建,但它根本找不到任何代理,因此您会收到一条愚蠢的无用的红鲱鱼错误消息。

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

下次我将尝试在 PowerShell 配置过程中更加注意此消息:

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

您必须在池下创建一个队列,但随后您的代理应该开始工作。

如果您的代理缺少具有某种功能的正版,您可以通过此处显示的“功能”选项卡检查您的代理支持的内容。当然msbuild, visualstudio and vstest都在这里:-)

在此处输入图像描述

于 2016-11-06T03:58:10.100 回答
10

In my case, after installing MSBuild (https://www.visualstudio.com/downloads/, search for "Build Tools for Visual Studio 2017"), I just had to add the path to MSBuild to the PATH environment variable. The agent wasn't detecting MSBuild until I did that.

C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin

I did NOT have to install the full Visual Studio IDE. The selected answer for this question is just plain wrong...

于 2018-06-11T15:19:45.030 回答
8

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

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

于 2015-08-13T17:47:24.403 回答
0

尽管以前的答案都对我不起作用,但Simon_Weaver的帖子为我指明了正确的方向。

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

于 2018-02-05T23:45:55.227 回答
0

将它们添加为用户定义的功能,例如:

visualstudio   C:\Program Files\Microsoft Visual Studio\2022\Community

vstest         C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow

我最初在没有安装 Visual Studio 的机器上安装了代理。但是,在安装 Visual Studio(然后是 Visual Studio 构建工具)、重新启动/重新创建代理、重新启动机器等之后,我无法让代理自动检测新功能,所以我自己在Azure DevOps 中将它们添加为用户定义的能力

于 2022-03-02T18:04:11.223 回答
0

最终对我有用的是去我下载代理并运行的地方:

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

下载代理

于 2018-08-29T15:41:30.673 回答
0

我遇到了这个问题,结果证明我的发布过程选择了“错误”的代理。只需编辑发布并设置正确的代理队列

在此处输入图像描述

于 2018-02-21T07:24:09.083 回答
0

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

于 2020-02-06T05:19:06.043 回答
0

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

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

于 2019-12-04T22:55:44.877 回答
0

我正在使用 Xcode build slave 来构建 Xcode 项目。

我在 TFS 2015 中最终得到的错误消息是

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

我注册了一个OS X 本地构建 slave

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

>> Register Agent:

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

所以,我不得不在构建设置中选择“My-Xcode-Agent-Pool”作为默认队列。来源:Microsoft 托管的代理

于 2016-06-17T11:53:57.443 回答
-1

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

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

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

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

于 2018-03-27T11:56:47.227 回答
-2

TFS 的通用解决方案:

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

使用 VSTS 的替代解决方案

当您选择构建位置时,请使用“托管”,然后构建将起作用。

可在此处找到如何使其工作的指南:在 Windows 上为 TFS 2015 部署代理

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

更新:

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

PS 请注意,如果需要,您可能需要许可您的软件。

于 2016-10-10T09:00:32.977 回答