【问题标题】:Visual Studio 2013 building order fails with parallels buildVisual Studio 2013 构建顺序因并行构建而失败
【发布时间】:2015-04-28 16:01:23
【问题描述】:

我有一个包含多个项目的 Visual Studio 解决方案

假设项目 Core、CoreExtended、ProjectA 和 ProjectB。

-- CoreExtended 作为依赖 Core。

-- 项目 A 和项目 B 作为依赖项具有 CoreExtended 和 Core。

当我尝试使用多个线程构建时,msbuild 出现问题,因为两个项目 ProjectA 和 ProjectB 都尝试获取 Core,但它失败了。我已经修改了所有依赖项和顺序。为什么 Visual Studio 不保护它并先编译 ProjectA 然后编译 ProjectB? 为什么除了只有 Core 作为依赖项之外的其他项目不会失败?

显然,当我在构建它时只放置一个线程时工作正常。

提前致谢。

【问题讨论】:

    标签: visual-studio-2013 msbuild circular-dependency


    【解决方案1】:

    前段时间我们遇到了一些类似的问题。结果发现有些项目的输出目录相同,导致并发问题。

    【讨论】:

    • 这可能是因为我的所有项目都将其自己的 bin 文件夹复制到我启动应用程序的 extern bin 文件夹中。此外,我用作参考的 dll 是复制到 extern 文件夹的那些...
    • 您可以通过限制将 bin 内容复制到解决方案中其他项目未引用的项目来减少并发冲突。其次,在从 projectB 到 Core 的引用中,您可以将属性“复制本地”设置为 false。这样只有 projectA 将 Core.dll 复制到它的 bin 中,当 projectB\bin 的内容复制到外部输出文件夹时不会冲突。
    猜你喜欢
    • 2014-08-15
    • 2013-12-24
    • 1970-01-01
    • 2022-07-07
    • 2015-05-15
    • 2012-08-12
    • 2015-12-11
    • 1970-01-01
    • 2018-12-20
    相关资源
    最近更新 更多