30% 的时间解决方案重建失败

Solution rebuild fails 30% of the time

我们在一个解决方案中有 100 多个项目,其中一些项目包括其他项目作为项目参考。 Clean-Build/Rebuild 花费了太多时间,所以我搜索并找到了一个很好的优化 build/rebuild 时间的解决方案:

  1. 在所有项目中为 Debug/Release 设置相同的输出路径,差异为 $(Configuration)。
  2. 将项目引用的复制本地设置为 false,因为引用的项目应该在那里。

经过多次测试,我发现由于 metadata * could not be found,VS Solution 的重建有 30% 的时间失败。 我知道这个错误是什么意思,但我不知道它是怎么来的。

有没有人知道如何提高解决方案重建的成功率?

重建失败的常见问题有时是(如评论中所述)并行构建,当项目之间存在依赖关系时(即一个构建目标需要先构建其他项目,因为它会消耗项目。)

可以在 VS 中设置构建依赖项 - 没有说明 VS 版本,但你应该可以右键单击项目,然后 select 'Build Dependencies' - 然后会给你两个选项:构建依赖项和构建顺序。

使用这些选项,您可以定义哪些项目依赖于其他项目(即防止 VS 尝试构建它所依赖的项目尚未构建的项目),并且如果需要,指定特定的顺序用于构建项目。

如果您的依赖关系正确,它应该确保正确的顺序,而不会牺牲并行构建(我怀疑,对于这么多项目,您会想要保留。)

参见:How to: Create and Remove Project Dependencies