Microsoft Visual Studio 2008正在与依赖项目并行构建依赖项目

时间:2014-05-27 17:34:27

标签: c++ visual-studio

我的情况是我们在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进行此项目。)

2 个答案:

答案 0 :(得分:0)

看起来没有建议解决方案级别中的依赖项设置,尝试使用项目级别依赖性?它适用于我遇到的类似问题。希望它有所帮助。

https://blogs.msdn.microsoft.com/visualstudio/2010/12/21/incorrect-solution-build-ordering-when-using-msbuild-exe/

https://connect.microsoft.com/VisualStudio/feedback/details/586875/msbuild-4-0-incorrectly-processes-project-dependencies-specified-in-solution-file

PS。引用的文章仅适用于VS2010,但......

答案 1 :(得分:0)

如果并行性对您无关紧要,您是否尝试过明确表达?根据您的描述,D,E和F可以并行运行。你能明确地让D依赖于E并使E依赖于F吗?

我在MSVS 2008中使用过多项目解决方案并且从未遇到构建顺序问题,但我的解决方案的依赖项dag在1个项目中终止。