是否可以在特定代理上运行TFS构建活动?

时间:2012-07-11 22:28:07

标签: build tfs tfs2010 tfsbuild build-agent

我们正在使用TFS 2010,我们需要运行单独的EXE来执行旧的VB6构建脚本。我们有2台机器上有3个构建代理,但只有一台机器上有VB6开发环境(以及旧的构建脚本),因此只有一个代理可以完成这项工作。我知道如何在构建模板文件中使用构建活动来执行此操作但是因为我们在2台不同的机器上有3个构建代理,我的问题是如何确保此活动仅在包含VB6的一个构建代理上运行发展环境?

我意识到这会造成瓶颈,但现在只是暂时的。如果我可以在不为自定义活动创建自定义DLL的情况下执行此操作,那将是理想的选择。此外,我理解标记我可以为这项工作创建一个不同的构建定义,但同样,这不是理想的...我想要一个构建工作流在一个代理上运行它,但其余的活动继续在他们各自的构建剂。

编辑:如上所述,如果可以将2个构建定义链接在一起(VB6构建定义运行,然后运行“常规”构建定义),那么如果可能的话,这将是一个可接受的解决方案。

1 个答案:

答案 0 :(得分:3)

您当然可以使用开箱即用的RunWorkflow和WaitForWorkflow活动将2个构建定义链接在一起(如果您查看它执行此操作的LabDefaultTemplate)。

更优雅的解决方案是在一个工作流程中使用AgentScope活动来分离需要在不同特定代理上运行的工作流程部分。如果查看DefaultTemplate,大部分内容都包含在一个AgentScope活动中(标记为Run On Agent),但您可以将其拆分为几个按顺序调用的AgentScope活动(如果可能,则并行调用)。