我有我想创建一个Nuget包它具有以下情形库:Nuget是否支持与特定平台绑定的依赖关系?
库编译成不同的版本:
- 的Silverlight 4.0
- .NET 4.0
- 。 net 3.5
- Windows Phone
幸运的是,所有这些平台都受到Nuget的支持,因此在我的软件包的lib文件夹中,我可以为这些平台中的每一个创建子文件夹,并且在图书馆安装在任何平台上时,Nuget都会做正确的事情。
问题是我有一些其他的依赖关系,因平台而异。例如:在Windows Phone上,我需要包含一个第三方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文件,这可以说明特定于平台的依赖关系。
这已经在CodePlex上的NuGet提交网站作为提案见https://docs.nuget.org/create/nuspec-reference#specifying-dependencies-in-version-2.0-and-above:http://nuget.codeplex.com/workitem/697 – 2011-02-15 20:45:24