Microsoft Visual Studio 2008正在并行地构建依赖于它们所依赖的项目

Microsoft Visual Studio 2008 is building dependent projects in parallel with what they are dependent on

本文关键字:依赖于 依赖 项目 构建 Studio Visual 2008 并行 Microsoft      更新时间:2023-10-16

我有一个情况,我们有六个项目在VS 2008解决方案。它们有一个类似于下面的依赖树:
A依赖于B
B取决于C, D, E, F
C取决于F
D E和F没有依赖关系。

当我查看解决方案的项目依赖项中的"构建顺序"选项卡时,一切看起来都很正常:F, E, D, C, B, A构建顺序。

当我从命令行执行构建时(使用我们的持续集成工具),构建以正确的顺序开始;然而,它是并行启动的。这是日志显示构建项目从F, E, D, C混合。不幸的是,C在F完成之前完成了构建,因此会出现错误。事实上,当快速建设项目D &E完成后,Visual Studio开始B和A,导致更多的混乱,因为F和C的依赖关系是不完整的。

如何强制Visual Studio在开始子项目的工作之前等待依赖项的完成?

(由于在较旧的CE环境中交付项目,我们被迫使用Visual Studio 2008。)

如果并行性对您来说并不重要,您是否尝试过明确说明这一点?根据你的描述,D、E和F可以并行运行。你能明确地让D依赖于E,让E依赖于F吗?

我在MSVS 2008中使用了多项目解决方案,从未有过构建顺序问题,但我的解决方案的依赖关系在1个项目中终止。

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

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

p。参考文章只适用于VS2010,尽管…