我刚才读过这篇文章: https://blog.xamarin.com/net-standard-library-support-for-xamarin/
因此,我将所有库从可移植库转换为.NET Standard(1.4)。我这样做是因为文章说“这个PCL现在需要升级到目标.NET标准库,可以在项目属性中找到。”。
但是,我无法弄清楚如何构建面向.NET Standard的Xamarin Forms项目。我克隆了Xamarin Forms样本,并打开了MasterDetailPage项目。我按照说明进入项目属性并从便携式切换到.NET Standard。我立即收到错误,告诉我需要选择NuGet 3.0支持。我对此很好,但我该怎么做?
我发现如果删除Xamarin Forms NuGet包,我就可以切换到.NET Standard。但是,一旦我这样做了,我就无法添加Xamarin Forms NuGet包了。它只是一直在失败。与文章所说的相反,我无法添加对.NET标准库的引用。当我尝试在我的解决方案中添加对现有.NET标准库的引用时,Visual Studio只是给出了一个错误,指出该库不兼容。我应该针对Xamarin Forms定位哪个版本的.NET Standard?
如何使用Xamarin Forms支持编译.NET标准库?
答案 0 :(得分:5)
如果您想使用csproj而不是project.json使用新的Visual Studio 2017版本,您可以使用dotnet migrate CLI命令或将此代码添加/编辑到您的csproj文件中:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageTargetFallback>$(PackageTargetFallback);portable-win+net45+wp8+win81+wpa8</PackageTargetFallback>
</PropertyGroup>
</Project>
答案 1 :(得分:4)
事实证明,您可以获得.NET Standard项目来引用Xamarin Forms NuGet包,因此能够利用Xamarin Forms中的.NET标准库。
本文或多或少地解释了如何做到这一点。诀窍是在project.json中导入可移植框架。 https://xamarinhelp.com/dot-net-standard-pcl-xamarin-forms/
如果你不能使它工作,这里有一个Git样本可以工作。 https://github.com/adamped/XamarinForms.NetStandard.git
我最终能够毫无问题地针对.NET Standard 1.4。