团队构建:对多个构建定义使用相同的外部目标

时间:2011-03-25 11:07:09

标签: tfs team-build

我想在多个构建定义中使用外部文件中定义的相同目标。此外部目标文件应存储在源控件上。 TFSBuild.proj and Importing External Targets中解释的引导阶段似乎不允许为多个构建定义下载相同的文件,因为构建文件总是命名为TFSBuild.proj,因此位于每个构建定义的单独文件夹中。

这个问题在前面提到的帖子的评论中有点令人讨厌,但似乎很适合创建一个新帖子。

引用David Keaveny的评论:

  

是否可以下载TFS   来自其他文件夹路径   引导?我有一个Common.targets   包含所有自定义的文件   我的TFSBuild.proj应该是的任务   执行,但鉴于我几个   构建定义(每个文件夹一个   定义),它位于一个单独的   与构建处于同一级别的文件夹   定义。没有它,当然,   构建立即失败。 - 大卫   Keaveny 2010年8月17日23:58

1 个答案:

答案 0 :(得分:1)

我不确定是否有一种简单的方法可以做到这一点。您可以拥有目标文件的主副本,并将其分支到每个构建定义文件夹中。更新目标文件时,您需要记住将其合并到所有文件夹。您可以编写一个自动进行合并的脚本,该脚本应该能够计算出使用tf branches的分支关系,然后迭代它们并调用tf merge然后调用tf checkin。这感觉就像很多工作。

您可以在构建服务器上安装目标。我们使用了许多自定义目标,并且我们将它们作为产品进行管理,它们拥有自己的源代码控制区域,并且独立于用于构建的软件进行版本控制。我们使用wix打包它们,一旦经过测试,它们就会安装在所有的构建机器上。这似乎对我们有用,这意味着我们可以控制新目标文件的推出,而目标安装只是构建服务器基础构建的一部分。

如果有人能够更轻松地管理这个问题,我会非常感兴趣。