添加 dll 引用与项目引用的影响

Impact of adding dll reference vs project reference

对构建时间有影响吗?我们的 .Net 解决方案中有大约 30 个项目,它们共享的项目是通过项目引用添加的。我正在考虑更改为 dll 引用,而不是查看是否有任何构建性能提升。 有没有人有类似线路的经验?请分享您的想法。

我不知道为什么 DLL 引用会节省你的时间,项目引用唯一增加的开销是解决依赖树,这是你肯定希望它做的事情。

否则,如果您不小心,您最终会得到一个每次重建都会中断的项目,并且需要几个正常的构建才能再次开始运行。

是的,这可能会产生巨大的影响,具体取决于您 CI 的设置方式。

对此的解决方案是将应用程序的逻辑部分(数据访问、表示等)分组到单独的解决方案中,并将它们转换为 NuGet 包。我在将 TFS 构建、发布管理和 NuGet 相结合以自动将 NuGet 包从 "prerelease" 持续交付到 "stable".

方面取得了很多成功

您也可以将其打包 PDB 文件以进行调试,使用 NuGet 还有助于在不同的不同项目之间共享代码。如果项目 A 使用版本 1.2.3 的包 X,但您已将包 X 更新为项目 B 的版本 2.0.0,则项目 A 可以愉快地继续使用版本 1.2.3。

像这样拆分时要记住一件事:

const 变量在编译时 在所有程序集中被替换为文字值。如果您更改程序集 A 中的 const 值,而程序集 B 引用 const 值,则如果您不重新编译程序集 B,该值将不会更改。您可以通过使用 readonly 字段而不是 const 来避免这种情况。