我的情况是我们在VS 2008解决方案中有六个项目。它们具有类似于以下内容的依赖树:
A取决于B
B取决于C,D,E,F
C取决于F
D,E和F没有依赖关系。
当我查看" Build Order"解决方案的项目依赖项中的选项卡,一切看起来都是犹太人:F,E,D,C,B,构建顺序。
当我从命令行执行构建时(使用我们的持续集成工具),构建以正确的顺序启动;然而,它是并行启动的。这是日志显示来自F,E,D,C混合的构建项目。不幸的是,C在F完成之前完成了它的构建,因此发生了错误。事实上,当快速建设项目D&完成后,Visual Studio启动B和A,因为F和C中的依赖关系不完整而导致更加混乱。
在开始处理子项目之前,如何强制Visual Studio等待依赖项的完成?
(由于在较旧的CE环境中提供项目,因此我们强制使用Visual Studio 2008进行此项目。)
答案 0 :(得分:0)
看起来没有建议解决方案级别中的依赖项设置,尝试使用项目级别依赖性?它适用于我遇到的类似问题。希望它有所帮助。
PS。引用的文章仅适用于VS2010,但......
答案 1 :(得分:0)
如果并行性对您无关紧要,您是否尝试过明确表达?根据您的描述,D,E和F可以并行运行。你能明确地让D依赖于E并使E依赖于F吗?
我在MSVS 2008中使用过多项目解决方案并且从未遇到构建顺序问题,但我的解决方案的依赖项dag在1个项目中终止。