重用TFS构建过程模板的各个部分

时间:2012-07-20 15:06:31

标签: tfs tfs2010 build-automation

TFS构建流程在TFS 2010的构建模板中定义(实际上是带有* .xaml扩展名的Windows Workflow Foundation文件)。
在简单的项目中处理单个构建定义非常方便,但在不久的将来我们将有更复杂的项目,我们将有许多非常不同的构建定义,但同时它们中的一些将有一些重要的共同点逻辑中的部分。

并且不希望在每个构建模板中复制共同的逻辑,另一方面,具有一个超级智能可参数化的构建被认为不是最好的想法。

长话短说,但问题
是否有可能将通用逻辑放入另一个构建模板/ or_whatever并重用它?

如果没有 - 你对这种情况有什么方法/建议吗?

更新
正如K.Hoff提到的那样,有可能创建自定义活动,但我想更深入,不仅重用活动而且重用序列(简单地说,就像Ant或NAnt一样 - 将一个文件包含到另一个文件中,从另一个调用一个序列,等等。)

3 个答案:

答案 0 :(得分:1)

我建议您检查是否可以编写执行具有通用构建功能的workfow(.xaml文件)的代码活动。因此,可以将此类代码活动放入多个“主”构建模板中,以便可以重用通用流。 以下是如何动态加载和执行工作流的示例 - http://msdn.microsoft.com/en-us/vs2010trainingcourse_introtowf_topic8.aspx

答案 1 :(得分:1)

我们有类似的情况,但由于我们的大多数构建方案都是相似的(即get-> build-> test-> deploy),我们主要通过一个大的定义和自定义活动来解决它。 我们还会使用Community TFS Build Extensions提供的ExecuteWorkflow活动。

这适用于“简单”场景,我们不更广泛地使用它的原因是因为在工作流程执行之间传递参数非常复杂。 Here's a link解决了我遇到的问题(以及我发现的解决方案)。

答案 2 :(得分:0)

您可以按照here的说明创建自定义代码活动,并在其他构建模板中重复使用它们。

另一种方法是实现好的旧msbuild脚本并将它们放入msbuild执行活动中,以便在许多构建过程模板中重用它们。

我无法找到重用完整序列的快捷方法,我们发现的唯一方法是尽可能多地编写活动并注入参数以使其运行。

但我不认为这是TFS问题,这是一个工作流问题。