【问题标题】:Xamarin Android System.TypeLoadException after clearing storage on Azure DevOps app buildXamarin Android System.TypeLoadException 在 Azure DevOps 应用构建上清除存储后
【发布时间】:2020-10-09 13:49:41
【问题描述】:

随机,我似乎得到了System.TypeLoadException。每次我清除设备上的应用程序存储时也会发生这种情况。这只发生在由 Azure DevOps 管道生成的应用程序版本中。无论是为调试还是生产配置,我都无法在我的设备上的本地构建上重现此错误。以下是我遇到的与此问题相关的一些错误:

JsonSerializer.GetMatchingConverter(System.Collections.Generic.IList`1[T] 转换器,System.Type objectType) System.TypeLoadException:无法从 typeref 解析带有令牌 01000113 的类型(程序集 'System.Data,Version=2.0.5.0,Culture=neutral,PublicKeyToken=b77a5c561934e089' 中的预期类 'System.Data.SqlTypes.SqlBinary')

DataSetConverter.CanConvert(System.Type valueType) System.TypeLoadException:无法加载字段“System.Data.DataSet:PropertyChanging”(28)的类型,原因是:无法从 typeref 解析带有令牌 0100003c 的类型(程序集中的预期类“System.ComponentModel.PropertyChangedmzntHandler” '系统,版本 = 2.0.5.0,文化 = 中性,PublicKeyToken = 7cec85d7bea7798e')程序集:系统,版本 = 2.0.5.0,文化 = 中性,PublicKeyToken = 7cec85d7bea7798e 类型:System.ComponentModel.PropertyChangedmzntHandler 成员:(空)

DefaultContractResolver.CreateObjectContract (System.Type objectType) System.TypeLoadException:无法使用来自 typeref 的令牌 010000c4 解析类型(程序集“System.Runtime.Serialization,版本=2.0.5.0,文化=中性,PublicKeyToken=7cec85d7bea7798e”中的预期类“System.Runtime.Serialization.DataContractAttribute”)

为什么程序集中缺少这些类?会不会是因为 Azure DevOps 没有正确构建 Android App Bundle?

【问题讨论】:

    标签: xamarin azure-devops xamarin.android .net-assembly typeloadexception


    【解决方案1】:

    清除 Azure DevOps 应用构建上的存储后出现 Xamarin Android System.TypeLoadException

    这样的错误通常意味着程序集不再同步。这意味着收集在不同项目的 bin 和 obj 文件夹中的程序集包含混合版本,因此可能导致意外行为。

    要解决这个问题,请尝试:

    • 尝试清理并重建您的完整解决方案,如果您使用私人代理,请手动从每个项目文件夹中删除 binobj 文件夹。
    • 在使用 Azure devops 构建应用程序时,检查是否使用 Visual Studio 2019 编译应用程序。

    您可以查看this threadthis thread 了解更多详情。

    【讨论】:

    • 我已经在本地机器上进行了清理和重建,但这并没有显示任何错误。我确实收到以下警告:“MSB3247:发现同一依赖程序集的不同版本之间的冲突...”我已将建议的绑定重定向添加到 app.config 中的运行时节点。这可能是解决方案的一部分吗? - 另外我不确定我们是否使用 VS19 编译应用程序,我假设是这样,但我不知道如何检查才能确定。
    • @KesWalker,感谢您的回复。绑定重定向是解决同一个依赖程序集不同版本的有效方法,你可以试试告诉我结果,期待你的结果
    • 是的,问题仍然存在
    • @KesWalker,你能找出汇编版本的冲突并将它们的版本更改为相同的版本进行测试吗?
    猜你喜欢
    • 1970-01-01
    • 2017-02-02
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    • 2019-05-08
    • 1970-01-01
    • 2020-11-07
    • 2022-08-17
    相关资源
    最近更新 更多