C# 特定于目标的依赖项NuGet

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

我的.nuspec文件中有以下依赖项:

<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项目,它将执行相同的操作,并使用所有这些操作