我在TFS 2010项目的Lib文件夹中添加了一些库。 每次我在Lib文件夹中检查一个dll时,所有引用Lib文件夹的构建都会自动触发(超过20个Build)。
我可以使用***NO_CI***
来阻止这种情况。但我更喜欢有自动的东西。
是否可以在TFS上设置事件处理程序以防止这种情况发生。
实施例。如果签入是在该文件夹上,请不要扫描所有CI构建工作区以触发构建。
答案 0 :(得分:3)
构建定义中的工作空间映射定义了哪些文件/文件夹是该构建的一部分。您可以使用隐形文件夹从工作区中明确排除文件夹。
但是,工作空间映射用于两个目的:确定哪些文件作为构建的一部分下载到构建服务器,并确定哪些文件触发CI / Rolling / Gated构建。
如果从工作区中排除文件夹(例如使用隐藏文件夹),它将阻止构建被触发,但它也会阻止这些文件作为构建的一部分下载。
如果您希望构建下载某个文件夹作为构建的一部分,但不具有由该文件夹签入触发的构建,我认为如果不自定义构建,则不可能工作流程。
答案 1 :(得分:1)
如果在工作区中包含文件夹,则表示对该文件夹的更改会影响您的项目。对于共享源代码的更改与共享二进制文件的更改相同。如果它发生了变化,那么应该构建受影响的应用程序(并且应该运行它们的自动化测试),这样就可以确定更改的文件是否已经破坏了任何内容。
答案 2 :(得分:1)
确保lib文件夹中的每个库都有自己的文件夹+
下的版本文件夹lib
EntityFramework
4.1
EntityFramework.dll
4.2
EntityFramework.dll
然后修改构建以仅引用项目引用的库的特定文件夹。
设置构建需要做很多工作,但是只有在构建所需的文件发生变化时才会确保构建只会触发。
或者是项目目录中每个库的副本,您可以使用像NuGet或OpenWrap这样的包管理器来管理