使用一个签入触发两个生成定义-持续集成TFS

使用一个签入触发两个生成定义-持续集成TFS,tfs,build,continuous-integration,gated-checkin,Tfs,Build,Continuous Integration,Gated Checkin,我有两个构建定义“A”和“B”。当签入包含“src\ProjectA”下的文件时,我标记了要触发的“A”(选通签入),以及当签入包含“src\ProjectB”下的文件时要触发的“B”。 当chech-in只包含其中一个文件夹时,它会按预期工作 当签入同时包含这两个文件夹时,我在Visual Studio中单击CkeckIn按钮,我必须选择要运行的版本(我选择“A”),并且只有该版本正在运行,所有文件都在进入,意味着一些代码进入存储库,可能会破坏未运行的版本(“B”)。 我如何使TFS在交付此类

我有两个构建定义“A”和“B”。当签入包含“src\ProjectA”下的文件时,我标记了要触发的“A”(选通签入),以及当签入包含“src\ProjectB”下的文件时要触发的“B”。 当chech-in只包含其中一个文件夹时,它会按预期工作

签入同时包含这两个文件夹时,我在Visual Studio中单击CkeckIn按钮,我必须选择要运行的版本(我选择“A”),并且只有该版本正在运行,所有文件都在进入,意味着一些代码进入存储库,可能会破坏未运行的版本(“B”)。


我如何使TFS在交付此类签入时同时运行这两个生成,并且在所有依赖的生成都通过时不接受更改?

每个门控签入生成定义一次只能有一个运行的生成。如果您为同一个源代码管理文件夹配置了两个生成定义,那么您将始终得到一个选择。您的情况很可能是为同一个源代码管理文件夹配置的

建议只签入每个项目文件夹,而不是签入,将两个文件夹一起包含,以避免混淆。作为一种解决方法,您可以首先签入文件夹
src\ProjectA
中的文件,然后排除其他文件,在门控签入生成完成后,再次包括其他文件

有关TFVC门控签入的更多信息,您可以查看James Reed在这个问题中的回答