1

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

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

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

4

1 回答 1

3

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

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

于 2012-07-12T15:39:17.257 回答