嘿所有,这是我目前正在尝试解决的问题。我们正在使用Team Foundation Server 2008,并且开箱即用的自动构建支持。
我们有一个非常大的项目,其中包含许多相互关联的组件和网站,每个组件和网站都设置为Visual Studio解决方案文件。
这些解决方案中的许多解决方案高度相关,因为它们可能包含应用程序,或包含公共库或共享组件。我们有大约20个左右的应用程序,3个大型网站和大约20个组件。
每个解决方案都可能包含其他解决方案的项目。例如,控制台应用程序的解决方案还包括其使用的所有组件的项目文件,因为我们需要确保当有人更改组件并重建组件时,它会反映在使用该组件的所有项目中,我们可以确保没有任何东西被打破。
我们为每个解决方案构建项目,无论是应用程序,组件还是网站。
对于这个例子,我们将其称为解决方案01,02和03.这些项目引用了多个项目(包括他们自己的核心项目和测试项目,以及与各种组件相关的项目)。
解决方案01包含项目A,B和C.
解决方案02包含项目C,D和E.
解决方案03包含项目E,F和G.
现在,针对这个问题。
如果我修改项目A,系统将最终重建所有三个解决方案。
更糟糕的是,所有30个解决方案都引用了用于数据访问的常见项目(我们称之为项目H)。因为它们共享一个共同的项目,如果我修改我的堆栈中的任何解决方案,即使它没有触及项目H,我仍然最终开始每个构建脚本。
有关如何解决此问题的任何想法?理想情况下,我只想启动他们的组成项目被直接修改的构建 - 即在下面的示例中,如果我修改了项目C,我只会重建解决方案01和02。
谢谢!
答案 0 :(得分:2)
能够通过Martin Woodward根据这篇优秀文章限制我的构建定义中工作空间的范围来解决这个问题: