0

我为我的代码设置了一个文件夹结构,如下所示:

MyCodeFolder
   -SolutionFileOne.sln
   -ProjectFolder1
   -ProjectFolder2
   -ProjectFolder3
   -SolutionFileTwo.sln
   -ProjectFolderA
   -ProjectFolderB
   -ProjectFolderC
   -ProjectFolderCommon

解决方案一包含项目 1、2、3 和 Common,解决方案二包含项目 A、B、C 和 Common。

当我开始创建我的 TFS 构建时,我遇到了一个问题。如果我只是在设置的工作文件夹中添加 MyCodeFolder,那么两个构建都将成功,但随后对项目 2 的签入将启动解决方案 2 的构建,反之亦然。

如果我只映射解决方案需要构建的文件夹,我猜这是因为我没有包含到解决方案文件所在的文件夹(MyCodeFolder)的映射。

有没有办法在不改变文件结构的情况下解决这个问题?

4

1 回答 1

2

TFS 构建中的持续集成触发器将在新构建的工作区中的任何项目发生更改时将其排队。工作区映射只能包含文件夹 - 您不能在文件夹中包含 \ exclude(也称为“cloak”)单个文件。

您可以做的是设置您的构建工作区以使用整个 /MyCodeFolder 文件夹。然后,在 SolutionFileOne.sln 的构建中,您可以隐藏 ProjectFolderA、ProjectFolderB 和 ProjectFolderC。在 SolutionFileTwo.sln 的构建中,您可以隐藏 ProjectFolder1、ProjectFolder2 和 ProjectFolder3。

这只是部分解决方案。当有人更改任一解决方案文件或更改 ProjectFolderCommon 文件夹中的任何内容时,两个构建仍将启动。由于您无法隐藏解决方案文件本身,因此无法避免在不更改文件结构的情况下在解决方案文件签入时启动两个构建。

于 2013-06-12T16:28:38.663 回答