Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TFS解决方案构建级联到多个其他构建,即使公共组件未修改_Tfs_Msbuild - Fatal编程技术网

TFS解决方案构建级联到多个其他构建,即使公共组件未修改

TFS解决方案构建级联到多个其他构建,即使公共组件未修改,tfs,msbuild,Tfs,Msbuild,大家好,这是我目前正在努力解决的问题。我们使用Team Foundation Server 2008,并使用自动生成支持。p> 我们有一个非常大的项目,它包含许多相互关联的组件和网站,每个组件和网站都设置为VisualStudio解决方案文件 这些解决方案中有许多是高度相关的,因为它们可能包含应用程序,或者包含公共库或共享组件。我们大约有20个左右的应用程序、三个大型网站和大约20个组件 每个解决方案可能包括来自其他解决方案的项目。例如,控制台应用程序的解决方案还将包括它使用的所有组件的项目文件

大家好,这是我目前正在努力解决的问题。我们使用Team Foundation Server 2008,并使用自动生成支持。p> 我们有一个非常大的项目,它包含许多相互关联的组件和网站,每个组件和网站都设置为VisualStudio解决方案文件

这些解决方案中有许多是高度相关的,因为它们可能包含应用程序,或者包含公共库或共享组件。我们大约有20个左右的应用程序、三个大型网站和大约20个组件

每个解决方案可能包括来自其他解决方案的项目。例如,控制台应用程序的解决方案还将包括它使用的所有组件的项目文件,因为我们需要确保当有人更改组件并重建它时,它会反映在使用该组件的所有项目中,并且我们可以确保没有任何内容被破坏

我们为每个解决方案都构建了项目,无论是应用程序、组件还是网站

对于本例,我们将它们称为解决方案01、02和03。这些引用了多个项目(它们自己的核心项目和测试项目,以及与各种组件相关的项目)

解决方案01包含项目A、B和C

解决方案02包含项目C、D和E

解决方案03包含项目E、F和G

现在,为了这个问题

如果我修改项目A,系统将最终重建所有三个解决方案

更糟糕的是,所有30个解决方案都引用了用于数据访问的公共项目(我们称之为项目H)。因为它们都共享一个项目,如果我修改堆栈中的任何解决方案,即使它不涉及项目H,我仍然会启动每个构建脚本

关于如何解决这个问题有什么想法吗?理想情况下,我只想在其组成项目被直接修改的情况下启动构建—即在下面的示例中,如果我修改了项目C,我将只重建解决方案01和02


谢谢

根据Martin Woodward的这篇优秀文章,通过限制我的构建定义中的工作区范围,我们能够解决这个问题:


我喜欢当一个问题出现时,它完全表达了我脑海中的一个问题,但却找不到字眼来进行易懂的谷歌搜索。谢谢-P