2011-09-28 40 views
1

我有一些库添加在我的TFS 2010项目在Lib文件夹中。 每次我在Lib文件夹中检查一个DLL时,引用该Lib文件夹的所有构建自动触发(超过20个构建)。防止签入触发与TFS 2010的多个生成

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

Ex。如果检入位于该文件夹中,则不要扫描所有CI构建工作区以触发构建。

+1

lib文件夹管理的副本包含第三方组件。它在许多构建定义工作区中被引用。我想要的只是在该Lib文件夹触发构建的其他位置签入。我不想将所有CI构建更改为手动。 如果我修改了构建模板,所有的构建都会被触发。 我想要“*** NO_CI ***”之类的东西,但如果检入位于我的TFS项目上的特定文件夹中,则会自动管理 – Syll

回答

3

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

但是,工作区映射用于2个目的:确定将哪些文件作为构建的一部分下载到构建服务器,并确定哪些文件触发CI /滚动/门控构建。

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

如果你想有一个构建下载某个文件夹作为构建的一部分,但不是通过建立签入到该文件夹​​引发的,我不相信这是可能没有定制生成流程。

1

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

1

确保lib文件夹中的每个图书馆都有它自己的文件夹+版本的文件夹下

lib 
    EntityFramework 
    4.1 
     EntityFramework.dll  
    4.2 
     EntityFramework.dll 

然后修改你的构建,以只引用特定的文件夹为库项目引用。

设置构建需要很多工作,但会确保构建仅在构建所需的文件发生更改时触发。

或者在项目目录中的每个库,你可以用类似的NuGet或包管理器OpenWrap