DLL参考最佳实践

4

我在解决方案中有22个项目。我通过构建这些项目并选择创建的dll向一些项目添加了引用。这是最佳实践还是应该使用项目引用而不是指向dll?

问候, Vix。


5个回答

3
我建议您使用项目引用。如果我没记错的话,在这种情况下,您将始终引用实际(而非过时的)程序集。

这是正确的,因为文件引用可能会被缓存并导致问题。 - Jethro

1

我不知道最佳实践,但至少有一些需要考虑的要点。

项目引用的优点:

  • 更易读的代码
  • 更容易调试
  • 更容易进行更改

dll 引用的优点:

  • 更快的构建速度
  • 减少对共享组件的意外更改风险

注意:您应该不将具有 dll 引用的项目保留在同一个解决方案中,因为这会导致在构建时发生混淆。


1

除了@platon的帖子之外,我想说的是不仅仅是总是,而是在大多数情况下。

例如:

  1. 如果您的项目使用公司X开发人员多年前编写的许多库,并且有一次在几年内更改了某些内容,如果您的解决方案中有150个项目,则添加这些库的DLL引用而不是项目引用可能是非常好的解决方案,否则在每次编译时,您将去玩PS上的足球比赛并在10分钟后回来。

  2. 您的项目使用C++库,您还希望能够在VS Express版中构建解决方案(您也在家工作,您应该将代码传递给尚未拥有VS的人,因为它成本很高...等等)。添加DLL而不是项目引用

等等......

我的意思是,@platon所说的绝对正确,但并非总是如此。

问候。


0

我赞同platon的意见,使用项目引用。很可能你的解决方案编译时间过长。我们在项目中做了以下几件事:

  • 减少解决方案中的项目数量
  • 购买性能更好的开发人员电脑,特别是带有SSD驱动器的电脑。
  • 将依赖的项目构建到外部程序集文件夹中,并将其纳入源代码控制。

0

使用项目引用将使您能够轻松阅读代码,逐步执行和调试/编辑这些项目,如果需要的话。在我看来,这是非常宝贵的,不值得绕过。

然而,如果您发现由于大量项目而导致构建时间受到影响,您可以采取几种不同的方法。以下是一些:

  1. 进入解决方案配置管理器,在调试配置中关闭一些项目的“生成”设置。请注意,这将导致您在进行更改时需要手动构建这些项目,并且当从源代码控制下载新的解决方案时,您需要手动构建这些项目。这种方法适用于“稳定但正在开发”的项目。

  2. 预编译项目(在发布配置中),并将它们构建到解决方案根目录下的指定文件夹中(例如“ExternalAssemblies”或“References”)。然后,您应该删除这些项目,并通过浏览编译文件夹并从中添加引用来重新添加所有引用。这种方法适用于您真正不太可能编辑的“稳定”项目。

  3. 保持项目不变,并获得更好的电脑。在开发人员机器上,更快的磁盘和更多的RAM永远不会有错。这种方法的优点应该是显而易见的。


第三点过于理想化,有时很难向管理层解释为什么需要更快的电脑,即使将一些计算结果放在他们面前。 - Tigran
确实,那部分内容是以嬉笑怒骂的方式呈现的,但对于小公司和独立开发者来说,这仍然是一个实用的解决方案 :) - Reddog

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接