对于包对其他库的每个依赖项,是否真的需要解析和安装这些库?
例如,我创建了一个使用NLog
,Postsharp
和WindowsAzure.Storage
的包:
我的包的客户现在也必须安装这些包吗?为什么不能在包中包含这些依赖DLL?
答案 0 :(得分:10)
当消费者安装您的nuget包时,nuget也会自动解析并安装依赖包。
可以在包中包含dll,但不建议这样做。因为这种或那种方式,他们必须引用他们使用您的包所需的dll(在这种情况下为NLog
,PostSharp
和WindowsAzure.Storage
)。消费者可以更好地控制安装的库。
通过nuget获得依赖关系的另一个好处是,消费者可能决定安装更新版本的WindowsAzure.Storage库,当您没有将dll注入包中时,他可以轻松完成。否则,您可能会遇到一些混乱的程序集运行时错误。
您可以通过用于构建nuget包的nuspec文件来控制包中包含的内容。