xamarin - La actualización de Nuget provocó una excepción no controlada: System.TypeLoadException
xamarin.forms xamarin.android (3)
El problema se rastrea en github y solo provoca usuarios de Visual Studio 2017. Si compila la aplicación con Visual Studio 2019, la aplicación funciona bien con Xamarin.Forms 4.2.0.815419 (4.2.0 Service Release 2) .
Esto es causado por un cambio en Mono que lo convirtió en Xamarin.Android en VS2019 .
System.Collections.Generic.Queue está disponible en
C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/Common7/IDE/ReferenceAssemblies/Microsoft/Framework/MonoAndroid/v1.0/System.dll
y
C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/IDE/ReferenceAssemblies/Microsoft/Framework/MonoAndroid/v1.0/mscorlib.dll
No está disponible en
C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/Common7/IDE/ReferenceAssemblies/Microsoft/Framework/MonoAndroid/v1.0/mscorlib.dll
Entonces, si cualquier dll que se basa en Queue cumple con VS2019 y se ejecuta en VS2017, arrojará una excepción que no puede cargar Queue desde mscorlib.
Estoy comenzando una nueva página maestra de xamarin con fines de prueba y actualicé los paquetes nuget para la versión xamarin.android.support y xamarin.forms. Después, mi programa recibe la excepción:
LoadApplication obtiene el error de excepción:
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
Pantalla de bienvenida que causa el bloqueo. La siguiente respuesta solucionó mi problema con los últimos formularios de xamarin (4.2.0.815419) y en VS 2019 Ent (16.3.1)
Reduzca xamarin.forms y xamarin.forms.maps a v4.1.0.778454 en todos los proyectos.
Lo hice y trabajé perfectamente.