NuGet包依赖项

Dav*_*New 5 nuget nuget-package nuget-server

对于包对其他库的每个依赖项,是否需要解析和安装这些库是真的吗?

例如,我创建了一个使用的包NLog,Postsharp并且WindowsAzure.Storage:

NuGet依赖

我的包的客户现在也必须安装这些包吗?为什么不能在包中包含这些依赖DLL?

Dor*_*rin 10

当消费者安装您的nuget包时,nuget也会自动解析并安装依赖包.

可以在包中包含dll,但不建议这样做.因为这种或那种方式,他们必须引用他们需要使用你的包(在这种情况下NLog,PostSharpWindowsAzure.Storage).消费者可以更好地控制安装的库.

通过nuget获得依赖关系的另一个好处是,消费者可能决定安装较新版本的WindowsAzure.Storage库,当您没有将dll注入包中时,他可以轻松完成.否则,您可能会遇到一些混乱的程序集运行时错误.

您可以通过用于构建nuget包的nuspec文件来控制包中包含的内容.

  • 这个答案不是很清楚._nuspec_文件应包含程序包的依赖项列表.当用户安装您的软件包时,NuGet将查看依赖项,并将自动安装它们(如果尚未存在).它还将安装这些依赖项的任何依赖项,依此类推.注意:用户不必手动安装依赖项.请参阅http://docs.nuget.org/create/nuspec-reference上的_Specifying Dependencies_ (5认同)