我有一个库,我想为其创建一个Nuget包,它具有以下情况:
该库编译为不同的版本:
- 银光4.0
- .Net 4.0
- .net 3.5
- 视窗电话
幸运的是,Nuget 支持所有这些平台,因此在我的包的 lib 文件夹中,我可以为每个平台创建子文件夹,当库安装在任何这些平台上时,Nuget 会做正确的事情。
问题是我还有一些其他依赖项,这些依赖项因平台而异。例如:在 Windows Phone 上,我需要包含一个 3rd 方 zip 库 (wpSharpLibZip),但在包含压缩实用程序的其他平台上不存在这种依赖关系。
Nuget 是否支持这种情况?我希望能够让 wpSharpLibZip 依赖项仅存在于 Windows Phone 平台上。我是否必须为每个平台创建一个单独的包?
如果此功能不存在,我可以想象它的实现方式如下:
更改包清单的部分以支持:
<dependencies>
<dependency id="Newtonsoft.Json" version="3.5.8" />
<dependency id="wpSharpLibZip">
<platform>Silverlight 4.0 - Windows Phone</platform>
</dependency>
</dependencies>
或者另一种方法可能是允许在每个平台文件夹(在 lib 文件夹下)内有一个单独的 .nuspec 文件,这可以说明平台特定的依赖关系。