是否可以在特定代理上运行TFS生成活动



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

我意识到这造成了一个瓶颈,但这只是暂时的。如果我可以在不为自定义活动创建自定义DLL的情况下做到这一点,那将是理想的。此外,我知道通过标记,我可以为这项工作创建一个不同的构建定义,但同样,这并不理想。。。我想要一个在一个代理上运行的构建工作流,但之后的其余活动在各自的构建代理上继续。

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

您当然可以使用开箱即用的RunWorkflow和WaitForWorkflow Activities将2个构建定义链接在一起(如果您查看LabDefaultTemplate,它可以做到这一点)。

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

最新更新