错误 'No agent could be found with the following capabilities: msbuild, visualstudio, vstest'
Error 'No agent could be found with the following capabilities: msbuild, visualstudio, vstest'
我正在使用 TFS 2015 设置新的构建服务器,在配置代理后,当我尝试对构建进行排队时出现此错误:
No agent could be found with the following capabilities: msbuild, visualstudio, vstest
如何解决?
在您的构建代理上安装 Visual Studio,然后重新启动构建代理。重新启动构建代理将捕获添加的功能。
默认情况下,当在 VSO 上使用新的构建系统时,它不会选择托管构建选项,这就是我在 Stack Overflow 中得出此 post 的原因。如果您习惯使用 VSO 构建服务器,那么您需要执行以下操作:
通过转到“常规”选项卡并将默认队列更改为托管来创建托管构建。有关其限制及其工作原理的更多信息,请点击此处:https://www.visualstudio.com/get-started/build/hosted-agent-pool
我正在使用 Xcode build slave 来构建 Xcode 项目。
我在 TFS 2015 中得到的错误消息是
"No agent could be found with the following capabilities: xcode"
我注册了一个OS X on-premise build slave。
在"Register Agent"步骤中,我通过build agent命名为:
>> Register Agent:
Enter agent pool (press enter for default) > My-Xcode-Agent-Pool
因此,我必须在构建设置中将 select "My-Xcode-Agent-Pool" 作为默认队列。资料来源:Microsoft-hosted agents
TFS通用解决方案:
解决构建服务器上大部分问题的常用方法是在构建服务器上安装 Visual Studio 和所有依赖包。
使用 VSTS 的替代解决方案
选择建造地点时,使用"Hosted"
然后构建就可以工作了。
有关如何使其工作的指南可在此处找到:Deploy an agent on Windows for TFS 2015
检查将包含有关功能的信息的代理部分。
已更新:
获得 vsts(azuredevops) 中的功能列表后
您可能需要在构建代理计算机上安装所需的软件。
PS 请注意,如果需要,您可能必须获得软件许可。
注意:首先,您可以在您自己的服务器上使用社区版和 TFS Express 2015 完成所有这些操作(最多五个用户免费)- 所以不要不用担心需要使用 Visual Studio 在线版本或支付 Visual Studio 专业版。
很容易误解所提供的错误消息并开始徒劳地尝试调试它。
不幸的是,消息本身措辞不当,这才是真正的问题。
错误消息实际上的意思是:
"No agent could be found with the following capabilities: msbuild,
visualstudio, vstest.
In fact I didn't actually find ANY build agents configured for the selected build queue."
所以您认为这不适用于您,因为您刚刚创建了一个构建代理?
好吧,也许你做到了,但这可能是发生的事情:
- 您创建了一个新池(没有任何原因,只是您认为您应该这样做)。
- 然后您在该池下创建了一个队列。
- 你 运行 PowerShell 脚本来创建代理 并且你假设它把它放在你刚刚创建的池中 ...
- 但它没有 - 它把它放在 'default' 池中,你甚至没有使用...
啊哈!
所以这是构建时发生的情况:
- 您 select 从下拉列表中选择一个队列。
- TFS 尝试通过查找与该队列对应的池来构建,但它在那里根本找不到任何代理,因此您会收到一条愚蠢无用的转移注意力的错误消息。
当我终于意识到发生了什么事时,我删除了我可爱命名的池 + 队列,然后恢复使用默认池。
下次我会尝试在 PowerShell 配置期间更加注意此消息:
Configure this agent against which agent pool? (default pool name is
'default')
您必须在池下创建一个队列,然后您的代理应该开始工作。
如果您的代理缺少某种功能的正版,您可以通过此处显示的 'capabilities' 选项卡检查您的代理支持的内容。当然 msbuild, visualstudio and vstest
都在这里了:-)
虽然 none 之前的答案对我有用,但 Simon_Weaver 的 post 为我指明了正确的方向。
他提到 vstest 在他的列表中,但不在我的列表中。我通过在 Visual Studio 2017.
下添加一个名为 "vstest" 的用户定义功能来修复它,该功能具有到 vstest.console.exe 的完整路径
我遇到了这个问题,原来是我的发布过程选择了 "wrong" 代理。只需编辑发布并设置正确的代理队列
您必须在构建机器(安装代理的地方)上安装对应的 Visual Studio 版本。这将为服务器添加所需的工具和功能。
Visual Studio 是必需的,因为它会安装构建项目所需的所有构建目标。
安装后,您必须重新启动代理 Windows 服务,以便它刷新功能列表。
由于您在构建机器上使用 Visual Studio 安装进行构建,因此该安装不算作附加许可证。
在我的例子中,在安装 MSBuild(https://www.visualstudio.com/downloads/,搜索 "Build Tools for Visual Studio 2017")之后,我只需将 MSBuild 的路径添加到 PATH 环境变量中。在我这样做之前,代理没有检测到 MSBuild。
C:\Program Files (x86)\Microsoft Visual Studio17\BuildTools\MSBuild.0\Bin
我不必安装完整的 Visual Studio IDE。这个问题的选择答案完全错误...
最终对我有用的是去我下载代理的地方 运行:
./config.cmd
删除然后 ./config.cmd
从我的代理目录中的命令行重新安装代理。
Download agent
每个微软 https://msdn.microsoft.com/en-us/ie/bb399135(v=vs.94)
You must install on the build agent the version of Visual Studio that your team uses on its dev machines. See Installing Visual Studio. You must also install any other software and components that are installed on your dev machines and that are required to build your app.
在我的例子中,安装 MSBuild 后,重新启动所有 Azure 服务(在 windows 服务中)并且它成功了。无需安装完整 Visual Studio
将它们添加为 User-defined 功能,例如:
visualstudio C:\Program Files\Microsoft Visual Studio22\Community
vstest C:\Program Files\Microsoft Visual Studio22\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow
我最初在一台没有安装 Visual Studio 的机器上安装代理。但是,在安装 Visual Studio(然后是 Visual Studio 构建工具)、restarting/recreating 我的代理、重新启动我的机器等之后,我无法让代理自动检测新功能,所以我自己在 Azure DevOps as User-defined capabilities.
中添加了它们
我正在使用 TFS 2015 设置新的构建服务器,在配置代理后,当我尝试对构建进行排队时出现此错误:
No agent could be found with the following capabilities: msbuild, visualstudio, vstest
如何解决?
在您的构建代理上安装 Visual Studio,然后重新启动构建代理。重新启动构建代理将捕获添加的功能。
默认情况下,当在 VSO 上使用新的构建系统时,它不会选择托管构建选项,这就是我在 Stack Overflow 中得出此 post 的原因。如果您习惯使用 VSO 构建服务器,那么您需要执行以下操作:
通过转到“常规”选项卡并将默认队列更改为托管来创建托管构建。有关其限制及其工作原理的更多信息,请点击此处:https://www.visualstudio.com/get-started/build/hosted-agent-pool
我正在使用 Xcode build slave 来构建 Xcode 项目。
我在 TFS 2015 中得到的错误消息是
"No agent could be found with the following capabilities: xcode"
我注册了一个OS X on-premise build slave。
在"Register Agent"步骤中,我通过build agent命名为:
>> Register Agent:
Enter agent pool (press enter for default) > My-Xcode-Agent-Pool
因此,我必须在构建设置中将 select "My-Xcode-Agent-Pool" 作为默认队列。资料来源:Microsoft-hosted agents
TFS通用解决方案:
解决构建服务器上大部分问题的常用方法是在构建服务器上安装 Visual Studio 和所有依赖包。
使用 VSTS 的替代解决方案
选择建造地点时,使用"Hosted" 然后构建就可以工作了。
有关如何使其工作的指南可在此处找到:Deploy an agent on Windows for TFS 2015
检查将包含有关功能的信息的代理部分。
已更新:
获得 vsts(azuredevops) 中的功能列表后 您可能需要在构建代理计算机上安装所需的软件。
PS 请注意,如果需要,您可能必须获得软件许可。
注意:首先,您可以在您自己的服务器上使用社区版和 TFS Express 2015 完成所有这些操作(最多五个用户免费)- 所以不要不用担心需要使用 Visual Studio 在线版本或支付 Visual Studio 专业版。
很容易误解所提供的错误消息并开始徒劳地尝试调试它。
不幸的是,消息本身措辞不当,这才是真正的问题。
错误消息实际上的意思是:
"No agent could be found with the following capabilities: msbuild, visualstudio, vstest. In fact I didn't actually find ANY build agents configured for the selected build queue."
所以您认为这不适用于您,因为您刚刚创建了一个构建代理?
好吧,也许你做到了,但这可能是发生的事情:
- 您创建了一个新池(没有任何原因,只是您认为您应该这样做)。
- 然后您在该池下创建了一个队列。
- 你 运行 PowerShell 脚本来创建代理 并且你假设它把它放在你刚刚创建的池中 ...
- 但它没有 - 它把它放在 'default' 池中,你甚至没有使用...
啊哈! 所以这是构建时发生的情况:
- 您 select 从下拉列表中选择一个队列。
- TFS 尝试通过查找与该队列对应的池来构建,但它在那里根本找不到任何代理,因此您会收到一条愚蠢无用的转移注意力的错误消息。
当我终于意识到发生了什么事时,我删除了我可爱命名的池 + 队列,然后恢复使用默认池。
下次我会尝试在 PowerShell 配置期间更加注意此消息:
Configure this agent against which agent pool? (default pool name is 'default')
您必须在池下创建一个队列,然后您的代理应该开始工作。
如果您的代理缺少某种功能的正版,您可以通过此处显示的 'capabilities' 选项卡检查您的代理支持的内容。当然 msbuild, visualstudio and vstest
都在这里了:-)
虽然 none 之前的答案对我有用,但 Simon_Weaver 的 post 为我指明了正确的方向。
他提到 vstest 在他的列表中,但不在我的列表中。我通过在 Visual Studio 2017.
下添加一个名为 "vstest" 的用户定义功能来修复它,该功能具有到 vstest.console.exe 的完整路径我遇到了这个问题,原来是我的发布过程选择了 "wrong" 代理。只需编辑发布并设置正确的代理队列
您必须在构建机器(安装代理的地方)上安装对应的 Visual Studio 版本。这将为服务器添加所需的工具和功能。
Visual Studio 是必需的,因为它会安装构建项目所需的所有构建目标。
安装后,您必须重新启动代理 Windows 服务,以便它刷新功能列表。
由于您在构建机器上使用 Visual Studio 安装进行构建,因此该安装不算作附加许可证。
在我的例子中,在安装 MSBuild(https://www.visualstudio.com/downloads/,搜索 "Build Tools for Visual Studio 2017")之后,我只需将 MSBuild 的路径添加到 PATH 环境变量中。在我这样做之前,代理没有检测到 MSBuild。
C:\Program Files (x86)\Microsoft Visual Studio17\BuildTools\MSBuild.0\Bin
我不必安装完整的 Visual Studio IDE。这个问题的选择答案完全错误...
最终对我有用的是去我下载代理的地方 运行:
./config.cmd
删除然后 ./config.cmd
从我的代理目录中的命令行重新安装代理。
Download agent
每个微软 https://msdn.microsoft.com/en-us/ie/bb399135(v=vs.94)
You must install on the build agent the version of Visual Studio that your team uses on its dev machines. See Installing Visual Studio. You must also install any other software and components that are installed on your dev machines and that are required to build your app.
在我的例子中,安装 MSBuild 后,重新启动所有 Azure 服务(在 windows 服务中)并且它成功了。无需安装完整 Visual Studio
将它们添加为 User-defined 功能,例如:
visualstudio C:\Program Files\Microsoft Visual Studio22\Community
vstest C:\Program Files\Microsoft Visual Studio22\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow
我最初在一台没有安装 Visual Studio 的机器上安装代理。但是,在安装 Visual Studio(然后是 Visual Studio 构建工具)、restarting/recreating 我的代理、重新启动我的机器等之后,我无法让代理自动检测新功能,所以我自己在 Azure DevOps as User-defined capabilities.
中添加了它们