我为我的代码设置了文件夹结构,如下所示:
MyCodeFolder
-SolutionFileOne.sln
-ProjectFolder1
-ProjectFolder2
-ProjectFolder3
-SolutionFileTwo.sln
-ProjectFolderA
-ProjectFolderB
-ProjectFolderC
-ProjectFolderCommon
解决方案一包含项目1,2,3和Common和Solution二包含项目A,B,C和Common。
当我来创建我的TFS Builds时,我遇到了问题。如果我只是在设置的工作文件夹中添加MyCodeFolder,那么两个构建都会成功,但是对项目2的签入将启动解决方案2的构建,反之亦然。
如果我只映射解决方案需要的文件夹,则构建失败,我猜测这是因为我没有将解决方案文件所在的文件夹(MyCodeFolder)包含在映射中。
有没有办法在不改变文件结构的情况下解决这个问题?
答案 0 :(得分:2)
TFS构建中的持续集成触发器将在构建工作空间中的项目发生更改时对新构建进行排队。工作区映射只能包含文件夹 - 您不能在文件夹中包含\ exclude(也称为“cloak”)单个文件。
您可以做的是设置构建工作区以使用整个/ MyCodeFolder文件夹。然后,在SolutionFileOne.sln的构建中,您可以隐藏ProjectFolderA,ProjectFolderB和ProjectFolderC。在SolutionFileTwo.sln的构建中,您可以隐藏ProjectFolder1,ProjectFolder2和ProjectFolder3。
这只是部分解决方案。当有人更改解决方案文件或更改ProjectFolderCommon文件夹中的任何内容时,两个版本仍将启动。由于您无法隐藏解决方案文件本身,因此无法避免在不更改文件结构的情况下在解决方案文件签入时启动这两个版本。