更新 Nuget 导致异常未处理:System.TypeLoadException



我正在启动一个新的主xamarin页面进行测试,并更新了xamarin.android.support和xamarin.forms版本的nuget包。之后,我的程序出现异常:

加载应用程序收到异常错误:

base.OnCreate(savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App());

Unhandled Exception:
System.TypeLoadException: Could not load type of field 'Xamarin.Forms.Platform.Android.RendererPool:_freeRenderers' (0) due to: Could not resolve type with token 01000275 from typeref (expected class 'System.Collections.Generic.Stack`1' in assembly 'mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e') assembly:mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e type:System.Collections.Generic.Stack`1 member:(null) occurred

在所有项目中将 xamarin.forms 和 xamarin.forms.maps 降级到 v4.1.0.778454。

我做到了,工作得很好

该问题在 github 上跟踪,该问题仅触发 Visual Studio 2017 用户。如果使用 Visual Studio 2019 编译应用,则应用在 Xamarin.Forms 4.2.0.815419(4.2.0 服务版本 2(中运行良好。

这是由Mono更改引起的,该更改使其在VS2019中进入Xamarin.Android。

System.Collections.Generic.Queue 在

C:Program Files (x86)Microsoft Visual Studio2017EnterpriseCommon7IDEReferenceAssembliesMicrosoftFrameworkMonoAndroidv1.0System.dll

C:Program Files (x86)Microsoft Visual Studio2019EnterpriseCommon7IDEReferenceAssembliesMicrosoftFrameworkMonoAndroidv1.0mscorlib.dll

它不适用于

C:Program Files (x86)Microsoft Visual Studio2017EnterpriseCommon7IDEReferenceAssembliesMicrosoftFrameworkMonoAndroidv1.0mscorlib.dll

因此,如果任何依赖于队列的 dll 符合 VS2019,并在 VS2017,它将抛出异常无法从mscorlib加载队列。

Xamarin.Forms 团队现在尝试在 XF 代码中内部实现堆栈和队列,以实现 VS 2017 兼容性。

在合并之前,最后一个Xamarin.Forms位是用VS2017编译的,并且可以在VS2017中正常工作。

导致崩溃的初始屏幕。 以下答案修复了我在最新的 Xamarin 表单 (4.2.0.815419( 和 VS 2019 Ent (16.3.1( 中的问题

检查这里

相关内容

最新更新