将 Xamarin .net 标准 2.0 解决方案升级到 .net 核心或 .net 5 选项/路径?

问题描述

我们有一个适用于 iOS 和 Android 项目的 .net 标准 2.0 Xamarin 解决方案。

一个稍微不相关的说明中,我一直在尝试 fix some warnings 失败,它建议升级 .net 核心。

但是,我不确定 .net core 是否是正确的选择,或者是否有像 .net 5 这样更好的选择。我什至不确定 .net 标准 2.0 是否那么旧。

我们使用 mac,不能使用 .NET Portability Analyzer

我也试过 try-convert 这给了我以下...

Xamarin.Forms.props
Xamarin.Build.Download.props
Xamarin.iOS.CSharp.targets
Microsoft.Bcl.Build.targets
NETStandard.Library.targets
Xamarin.Firebase.iOS.Core.targets
Xamarin.Firebase.iOS.Analytics.targets
Xamarin.Build.Download.targets
Xamarin.Forms.targets
SkiaSharp.targets
HarfBuzzSharp.targets

我还看到了 2017 年的 this,我试图简单地更改 TargetFramework 只是为了看看会发生什么,但遇到了几个错误,例如 Project targets 'netcoreapp3.1'. It cannot be referenced by a project that targets 'Xamarin.iOS,Version=v1.0'

Tbh 我不知道从哪里开始,我们的选择是什么。

我所见过的升级指南都不是最新的或与 Xamarin 相关的,也没有可能适用于带有 Visual Studio for Mac 的 mac。

这似乎是 mac 上真正的雷区,工具有限。

编辑: 如果我尝试创建一个新的 Xamarin 解决方案,它不使用 .net 核心,仍然使用 .net 标准 2.0,我认为描述了微软的意图。

解决方法

坚持使用 .NET Standard 2.0,直到 .NET 6.0 发布。正如此处的 .NET 5.0 公告博文中所宣布的:https://devblogs.microsoft.com/dotnet/announcing-net-5-0/

我们还在 5.0 中完成了许多早期工作,以便 Xamarin 开发人员可以在我们发布 .NET 6.0 时使用统一的 .NET 平台。

因此,.NET 5.0 不是针对 Xamarin 特定目标的项目的可行升级途径。