阻止Checkin使用TFS 2010触发多个Build

时间:2011-09-28 20:52:24

标签: tfs tfs2010 tfsbuild

我在TFS 2010项目的Lib文件夹中添加了一些库。 每次我在Lib文件夹中检查一个dll时,所有引用Lib文件夹的构建都会自动触发(超过20个Build)。

我可以使用***NO_CI***来阻止这种情况。但我更喜欢有自动的东西。 是否可以在TFS上设置事件处理程序以防止这种情况发生。

实施例。如果签入是在该文件夹上,请不要扫描所有CI构建工作区以触发构建。

3 个答案:

答案 0 :(得分:3)

构建定义中的工作空间映射定义了哪些文件/文件夹是该构建的一部分。您可以使用隐形文件夹从工作区中明确排除文件夹。

但是,工作空间映射用于两个目的:确定哪些文件作为构建的一部分下载到构建服务器,并确定哪些文件触发CI / Rolling / Gated构建。

如果从工作区中排除文件夹(例如使用隐藏文件夹),它将阻止构建被触发,但它也会阻止这些文件作为构建的一部分下载。

如果您希望构建下载某个文件夹作为构建的一部分,但具有由该文件夹签入触发的构建,我认为如果不自定义构建,则不可能工作流程。

答案 1 :(得分:1)

如果在工作区中包含文件夹,则表示对该文件夹的更改会影响您的项目。对于共享源代码的更改与共享二进制文件的更改相同。如果它发生了变化,那么应该构建受影响的应用程序(并且应该运行它们的自动化测试),这样就可以确定更改的文件是否已经破坏了任何内容。

答案 2 :(得分:1)

确保lib文件夹中的每个库都有自己的文件夹+

下的版本文件夹
lib
  EntityFramework
    4.1
      EntityFramework.dll     
    4.2
      EntityFramework.dll

然后修改构建以仅引用项目引用的库的特定文件夹。

设置构建需要做很多工作,但是只有在构建所需的文件发生变化时才会确保构建只会触发。

或者是项目目录中每个库的副本,您可以使用像NuGet或OpenWrap这样的包管理器来管理