如何在NET标准项目中使用nuget包,它只与portable-net45 + win8 + wp8 + wpa81兼容?

g.p*_*dou 2 nuget xamarin mobile-center visual-studio-app-center

上下文

经过几个小时的无聊工作,我刚刚将我的所有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)
Run Code Online (Sandbox Code Playgroud)

题

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

我有一些记忆,在某处我读到有一个神奇的包,我安装然后它提供了一些技巧,一切都将再次酷.(或者我在做什么?)

Gui*_*rot 6

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

新的csproj格式:

<PropertyGroup>
  <PackageTargetFallback>portable-net45+win8+wpa81</PackageTargetFallback>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

旧project.json格式:

 "frameworks": {
   "netstandard1.4": {
     "imports": "portable-net45+win8+wpa81"
   }
 }
Run Code Online (Sandbox Code Playgroud)

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

  • 请注意,不推荐使用`PackageTargetFallback`来支持.NET Standard 2.0和.NET Core 2.0中的`PackageAssetFallback`,它们的行为略有不同. (4认同)