我有一个庞大的C#解决方案文件(约100个项目),希望提高构建时间。我认为在很多情况下,“复制本地”是浪费的,但我想知道最佳实践。
在我们的 .sln 中,应用程序A依赖于程序集B,而程序集B依赖于程序集C。在我们的情况下,有数十个“B”和少量的“C”。由于这些都包含在 .sln 中,我们使用项目引用。所有程序集当前都构建到 $(SolutionDir)/Debug(或 Release)中。
默认情况下,Visual Studio将这些项目引用标记为“复制本地”,这会导致每个正在构建的“B”都会将每个“C”复制一次到 $(SolutionDir)/Debug 中。这似乎很浪费。如果我只是关闭“复制本地”,会出现什么问题?其他大型系统的用户怎么做?
后续:
许多回复建议将构建分成较小的 .sln 文件......在上面的示例中,我首先构建基础类“C”,然后是大部分模块“B”,最后是一些应用程序“ A”。在这种模式下,我需要从 B 到 C 进行非项目引用。我遇到的问题是“Debug”或“Release”被烘焙进了提示路径中,导致我构建 B 的 Release 版本时对 C 的调试版本进行了构建。
对于那些将构建拆分为多个 .sln 文件的人,你们是如何解决这个问题的?