【发布时间】:2015-01-30 05:42:10
【问题描述】:
对于一个包对某个其他库的每个依赖项,是否也需要解析和安装这些库?
例如,我创建了一个使用NLog、Postsharp 和WindowsAzure.Storage 的包:
我的软件包的客户现在是否也必须安装这些软件包?为什么不能在包中包含这些依赖 DLL?
【问题讨论】:
标签: nuget nuget-package nuget-server
对于一个包对某个其他库的每个依赖项,是否也需要解析和安装这些库?
例如,我创建了一个使用NLog、Postsharp 和WindowsAzure.Storage 的包:
我的软件包的客户现在是否也必须安装这些软件包?为什么不能在包中包含这些依赖 DLL?
【问题讨论】:
标签: nuget nuget-package nuget-server
当消费者安装你的 nuget 包时,nuget 也会自动解析并安装依赖包。
include the dlls within the package 可以,但不推荐。因为他们必须以一种或另一种方式引用他们需要使用您的包的 dll(在本例中为 NLog、PostSharp 和 WindowsAzure.Storage)。最好让消费者自己控制安装的库。
通过 nuget 获得依赖项的另一个好处是,消费者可能会决定安装较新版本的 WindowsAzure.Storage 库,当您没有将 dll 注入包中时,他可以轻松完成此操作。否则你可能会遇到一些混乱的程序集运行时错误。
您可以通过用于构建 nuget 包的 nuspec 文件控制包中包含的内容。
【讨论】: