【问题标题】:Updating Nuget caused Exception Unhandled: System.TypeLoadException更新 Nuget 导致异常未处理:System.TypeLoadException
【发布时间】:2019-11-12 23:38:13
【问题描述】:

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

LoadApplication 得到异常错误:

    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 xamarin.forms xamarin.android visual-studio-2017 nuget-package


    【解决方案1】:

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

    我做到了,效果很好

    【讨论】:

    • 仅升级为降级。它虽然有效。谢谢。有没有其他可用的解决方案?
    • Xamarin.Forms 和 Xamarin.Forms.Maps 版本 4.2.0.778463 对我有用,而“最新稳定版”4.2.0.815419 则不行。
    • 可以确认:最新的“稳定”4.2.0.815419 为我做了同样的事情。降级到上面提到的版本(虽然我没有使用地图)解决了这个问题。 “稳定”就这么多。我以为他们现在已经解决了这种问题。
    • 这真的很有帮助,谢谢。我只是想知道 Visual Studio 版本会如何影响这一点,显然它在 VS 2019 中有效,请参阅stackoverflow.com/a/58064929/6923440
    【解决方案2】:

    问题是tracked on github,该问题仅触发 Visual Studio 2017 用户。如果您使用 Visual Studio 2019 编译应用程序,则应用程序在 Xamarin.Forms 4.2.0.815419 (4.2.0 Service Release 2) 下运行良好。

    这是由 Mono change 导致的 into Xamarin.Android in VS2019

    System.Collections.Generic.Queue 可用于

    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v1.0\System.dll
    

    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v1.0\mscorlib.dll
    

    它在

    中不可用
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v1.0\mscorlib.dll
    

    因此,如果任何依赖 Queue 的 dll 符合 VS2019,并在 VS2017,会抛出异常 can't load Queue from mscorlib。

    Xamarin.Forms 团队现在尝试implement Stack and Queue internally in XF code for VS 2017 Compatibility

    在合并之前,最后一个 Xamarin.Forms 位使用 VS2017 编译,并且在 VS2017 中运行良好。

    【讨论】:

      【解决方案3】:

      闪屏导致崩溃。以下答案解决了我在最新 xamarin 表单(4.2.0.815419)和 VS 2019 Ent(16.3.1)中的问题

      check here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-22
        • 1970-01-01
        相关资源
        最近更新 更多