3

如果您正在创建一个必须添加一些第三方依赖项的 NuGet 包,您基本上有 2 个选项:

  1. 在包的 lib 文件夹中内部化 DLL。
  2. 引用第三方库作为 nuspec 文件中的依赖项。

例如,我注意到 RavenDB 已经内化了所有第三方依赖项,而其他一些项目则明确依赖于其他 NuGet 包。

我想知道何时选择任何一种方法是否有任何最佳实践/提示。各有什么优缺点?

4

2 回答 2

6

本着 NuGet 的良好精神,我建议添加对第三方包的依赖项,而不是内部化 DLL。NuGet 是围绕“依赖项”构建的,完全依赖这些是有意义的。

于 2012-12-20T16:26:27.950 回答
0

我敢说这更多地取决于您的实现是否是特定于版本的,以及是否有可能在更新和发布依赖项时,您的包是否可以从中受益(或者如果不推荐使用实现,可能会损坏)。

此外,通过使包具有 nuget 依赖项,您可以减少重复和目录大小(以及包大小)。更常见的库仅包含在您的项目中一次(但任何其他包也可能使用此库的好处,因为它已经包含在内)。

于 2012-12-20T16:28:46.767 回答