我想在多个构建定义中使用外部文件中定义的相同目标。此外部目标文件应存储在源控件上。 TFSBuild.proj and Importing External Targets中解释的引导阶段似乎不允许为多个构建定义下载相同的文件,因为构建文件总是命名为TFSBuild.proj,因此位于每个构建定义的单独文件夹中。
这个问题在前面提到的帖子的评论中有点令人讨厌,但似乎很适合创建一个新帖子。
引用David Keaveny的评论:
是否可以下载TFS 来自其他文件夹路径 引导?我有一个Common.targets 包含所有自定义的文件 我的TFSBuild.proj应该是的任务 执行,但鉴于我几个 构建定义(每个文件夹一个 定义),它位于一个单独的 与构建处于同一级别的文件夹 定义。没有它,当然, 构建立即失败。 - 大卫 Keaveny 2010年8月17日23:58
答案 0 :(得分:1)
我不确定是否有一种简单的方法可以做到这一点。您可以拥有目标文件的主副本,并将其分支到每个构建定义文件夹中。更新目标文件时,您需要记住将其合并到所有文件夹。您可以编写一个自动进行合并的脚本,该脚本应该能够计算出使用tf branches
的分支关系,然后迭代它们并调用tf merge
然后调用tf checkin
。这感觉就像很多工作。
您可以在构建服务器上安装目标。我们使用了许多自定义目标,并且我们将它们作为产品进行管理,它们拥有自己的源代码控制区域,并且独立于用于构建的软件进行版本控制。我们使用wix打包它们,一旦经过测试,它们就会安装在所有的构建机器上。这似乎对我们有用,这意味着我们可以控制新目标文件的推出,而目标安装只是构建服务器基础构建的一部分。
如果有人能够更轻松地管理这个问题,我会非常感兴趣。