过滤触发tfs构建的项目

时间:2011-11-02 00:47:17

标签: tfs msbuild tfs2010 tfsbuild

是否在团队构建2010(tfs)中将构建工作空间下找到的项目与将触发构建的项目分离?

我希望能够在我的工作区中指定项目的子集,因为它们是在更改时触发构建的项目。目前,工作空间的活动路径中的任何更改都将触发构建。

3 个答案:

答案 0 :(得分:1)

您可以创建更多构建定义以仅构建特定项目。我有两套项目,框架和模块项目。我有两个CI构建定义,一个用于框架集,一个用于模块。如果我更改了框架项目,则会触发框架构建,并将所有输出程序集签入到TFS中的BuildAssemblies文件夹中。此文件夹包含在模块构建定义工作空间中,因为BuildAssemblies是从模块项目引用的。通常,如果我更改BuildAssemblies内容模块应该被触发,但是我使用 *** NO_CI *** 前缀检查了我的更改,以便不触发模块构建。

但这不是好设计。如果您通过此更改更改框架程序集和中断模块,则在手动触发模块构建之前,您不会了解它。使用gated check-in功能进行模块构建是没有意义的。

答案 1 :(得分:1)

总的来说,我倾向于同意John Saunders,仍然: 您可以在源控件中的单独位置放置您不希望触发构建的项目。从项目主要解决方案中删除它们作为项目&将它们添加为程序集。

这样,二级源中的任何更改都不会触发您的主构建 - 合并已编译的程序集将会。获得的是后者可以在您选择的任何时间完成。

使用文件引用在您的情况下有几个缺点,主要是您无法直接调试已编译的程序集。另请参阅here

答案 2 :(得分:0)

唯一的方法是从构建定义的工作空间映射中删除这些项目。当然,这些项目仍然在分支机构和您的工作区中。