c++ - Microsoft Visual Studio 2008 正在与其所依赖的项目并行构建依赖项目

标签 c++ visual-studio

我的情况是我们在 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 中使用过多项目解决方案,从未遇到构建顺序问题,但我的解决方案的依赖项 dag 在 1 个项目中终止。

关于c++ - Microsoft Visual Studio 2008 正在与其所依赖的项目并行构建依赖项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23895596/

相关文章:

visual-studio - 发布到 Azure 不会更新 App_Data 中的文件

c# - EF6 中的方法链接不输出正确的 SQL

c++ - 如何在 C++ 中访问新主函数的参数?

c++ - qt 5.4/clang:体系结构 x86_64 的 undefined symbol (std::istream::gcount())

c++ - 具有委托(delegate)构造函数的 constexpr

c++ - 运算符过载测试失败

c++ - 使用 C++ 访问网络摄像头的 FFMPEG

c++ - 使用 C++ 字符串时内存泄漏

c++ - 在不同配置之间共享 .obj 文件

c# - 自动重构为 string.Format