C# 特定于目标的依赖项NuGet
我的.nuspec文件中有以下依赖项:C# 特定于目标的依赖项NuGet,c#,.net,xamarin,nuget,.net-standard,C#,.net,Xamarin,Nuget,.net Standard,我的.nuspec文件中有以下依赖项: <dependencies> <group> <dependency id="Dep1" version="2.4.11" /> <dependency id="Dep2" version="1.0.4" /> <dependency id="Dep3" version="1.0.4" /> <d
<dependencies>
<group>
<dependency id="Dep1" version="2.4.11" />
<dependency id="Dep2" version="1.0.4" />
<dependency id="Dep3" version="1.0.4" />
<dependency id="Dep4" version="1.0.0" />
<dependency id="Dep5" version="1.0.4" />
<dependency id="Dep6" version="1.0.4" />
</group>
</dependencies>
我已经创建了一个本地nuget服务器,并且正在Xamarin表单解决方案中安装这个nuget包
问题是,在解决方案的Android部分,它会安装,但在.netstandard部分,它会抱怨DEP4、5、6只适用于MonoAndroid(这是正确的)。在.netstandard解决方案中,我不需要DEP4、5和6
NU1202:Dep4 1.0.0与netstandard2.0不兼容
(.NETStandard,版本=v2.0)。Package Dep4 1.0.0支持:
monoandroid10(MonoAndroid,版本=v1.0)NU1202:Package Dep5 1.0.4是
与netstandard2.0(.NETStandard,Version=v2.0)不兼容。
软件包Dep5 1.0.4支持:monoandroid44(MonoAndroid,版本=v4.4)
如何区分每个targetFramework的依赖关系?我尝试过依赖项类别中的多个组变体,但没有任何方法可以解决此问题 仔细阅读后 可以总结为: 版本2.0+ 作为单个平面列表的替代方案,可以指定依赖项 根据目标项目的框架概要,使用 内部的元素 每个组都有一个名为targetFramework的属性,其中包含零或 更多元素。这些依赖项一起安装 当目标框架与项目框架兼容时 个人资料 不带targetFramework属性的元素用作 依赖项的默认或回退列表。有关详细信息,请参见目标框架 确切的框架标识符 因此,在我的情况下,它将是:
<dependencies>
<group targetFramework="MonoAndroid10">
<dependency id="Dep1" version="2.4.11" />
<dependency id="Dep2" version="1.0.4" />
<dependency id="Dep3" version="1.0.4" />
<dependency id="Dep4" version="1.0.0" />
<dependency id="Dep5" version="1.0.4" />
<dependency id="Dep6" version="1.0.4" />
</group>
<group>
<dependency id="Dep1" version="2.4.11" />
<dependency id="Dep2" version="1.0.4" />
<dependency id="Dep3" version="1.0.4" />
</group>
</dependencies>
这样,当我在.netstandard项目上安装包时,它将检查targetFramework,并查看它是否为MonoAndroid,它将返回到没有targetFramework的元素,并仅使用Dep1、Dep2和Dep3。
对于MonoAndroid10项目,它将执行相同的操作,并使用所有这些操作