如何在仅兼容portable-net45+win8+wp8+wpa81的NET标准项目中使用nuget包?

How to use nuget package in NET standard project, which is only compatible with portable-net45+win8+wp8+wpa81?

上下文

经过几个小时的无聊工作,我刚刚将我所有的 PCL 项目迁移到 Xamarin.Forms 解决方案中的 .NET 标准。 (为什么?因为这在当时看来是个好主意)

总之,我成功了。

作为下一步,我决定添加 Xamarin Insights,我被引导到 https://mobile.azure.com/,在那里我指示使用 Microsoft.Azure.Mobile.Analytics 和 Microsoft.Azure.Mobile.Crashes 包。

然而,在安装任何软件包时我都收到了这个错误:

Package Microsoft.Azure.Mobile.Analytics 0.15.0 is not compatible with netstandard1.4 (.NETStandard,Version=v1.4). Package 
Microsoft.Azure.Mobile.Analytics 0.15.0 supports:
 - monoandroid403 (MonoAndroid,Version=v4.0.3)
 - portable-net45+win8+wp8+wpa81 (.NETPortable,Version=v0.0,Profile=Profile259)
 - uap10.0 (UAP,Version=v10.0)
 - xamarinios10 (Xamarin.iOS,Version=v1.0)

问题

我理解错误。请不要告诉我必须再次将我的所有项目迁移回 PCL。 (并放弃 .NET Standard)。

我有一些记忆,我在某处读到有一个神奇的软件包,我安装它然后它提供了一些技巧,一切都会再次变得很酷。 (还是我在做梦?)

您可以向项目配置添加回退以在 PCL 项目中使用 .NET 标准包:

新的 csproj 格式:

<PropertyGroup>
  <PackageTargetFallback>portable-net45+win8+wpa81</PackageTargetFallback>
</PropertyGroup>

旧project.json格式:

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

至于 "magic" 包,您可能被告知 Microsoft.Bcl.Build 但在这种情况下,我不确定它是否有帮助。