【问题标题】:Reference a PCL profile 111 is a PCL .NET standard 1.1参考 PCL 配置文件 111 是 PCL .NET 标准 1.1
【发布时间】:2016-10-10 08:38:30
【问题描述】:

在 .NET 标准 PCL 项目中,我想引用一个私有 nuget 包,该包针对配置文件 111 (lib\portable-win8+net45+wpa81+MonoAndroid+Xamarin.iOS10)

但是当我添加 nuget 包时,nuget 抱怨说 nuget 包不包含与 netstandard 1.1 兼容的目标。虽然文档https://docs.microsoft.com/fr-fr/dotnet/articles/standard/library 解释说配置文件 111 与 netstandard 1.1 兼容,并且如果引用了 Microsoft.NETCore.Portable.Compatibility 包,则可以引用,就是这种情况。

知道有什么问题吗?我可以更新自定义 nuget 包,但不知道要更改什么。

【问题讨论】:

    标签: xamarin portable-class-library .net-standard


    【解决方案1】:

    project.json 文件中,尝试为特定的 PCL 配置文件添加 imports 指令。像这样,

    "frameworks": {
      "netstandard1.1": {
        "imports": "portable-win8+net45+wpa81"
      }
    }
    

    另外,为了获得最大的兼容性,我认为您应该放弃 NuGet 包的 MonoAndroidXamarin.iOS10 规范。包管理器应该能够自行得出 Xamarin 适用性。

    关于imports 指令的更多信息可以在here 找到。

    【讨论】:

    • 运气好吗?我刚才自己试过了,对我来说似乎可以解决问题。
    【解决方案2】:

    同样的技巧适用于.csproj 文件。您只需将PackageTargetFallback 添加到您的项目文件(在VS2017 中测试):

    <PropertyGroup>
      <TargetFramework>netstandard1.1</TargetFramework>
      <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wpa81</PackageTargetFallback>
    </PropertyGroup>
    

    【讨论】:

      【解决方案3】:

      有时,在尝试使用包时,该包不支持相应的 TargetFramework。 Imports 为您提供了一种方法,可以在这种情况下指定要使用哪些 TargetFramework 资产 - 因为您知道它们是兼容的。

      发件人:https://docs.nuget.org/ndocs/schema/project.json

      导入 导入旨在允许使用 dotnet TxM 的包与未声明 dotnet TxM 的包一起操作。如果您的项目正在使用 dotnet TxM,那么您所依赖的所有包也必须具有 dotnet TxM,除非您将以下内容添加到 project.json 以允许非 dotnet 平台与 dotnet 兼容。如果您使用的是 dotnet TxM,那么 PCL 项目系统将根据支持的目标添加适当的导入语句。

      "frameworks": { "dotnet": { "imports" : "portable-net45+win81" } }
      

      支持 PackageTargetFallback 的 MSBuild 语法

      PackageTargetFallbacks 可能已在 Microsoft 目标之一(我们正在考虑)或其他目标中设置。

      最后,正如@altso 所说,您可以解决编辑 PCL 项目的 .csproj 的问题并添加下一行:

      <PackageTargetFallback Condition="'$(TargetFramework)'=='Net45'">
          $(PackageTargetFallback);portable-net45+win8+wpa81+wp8
      </PackageTargetFallback >
      

      参考:https://github.com/NuGet/Home/wiki/PackageTargetFallback-%28new-design-for-Imports%29

      【讨论】:

        猜你喜欢
        • 2016-12-27
        • 2018-04-21
        • 2018-01-11
        • 1970-01-01
        • 2016-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-28
        相关资源
        最近更新 更多