当我尝试上传 Microsoft 商店时,UWP/Xamarin 在提交测试中崩溃

2023-12-13

我正在使用 Xamarin Forms 开发一个带有 SignalR 的消息发送应用程序,我在本地和 Android 上测试了无数次,它运行良好,没有崩溃,但是当他们进行测试以将其上传到微软商店时,他们报告说我的应用程序崩溃了。

根据应用程序中心,应用程序在尝试通过 SignalR 发送消息时崩溃,这是错误:

d__46.MoveNext() + 0x14b System.Reflection.MissingMetadataException: 无法执行此操作,因为出于性能原因删除了以下对象的元数据:\n\n EETypeRva:0x0035FCD8\n\n没有可用的进一步信息。在调试模式下重建以获得更好的信息。\n\n

System.Reflection.Runtime.TypeInfos
RuntimeNoMetadataNamedTypeInfo.get_InternalFullNameOfAssembly () f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\TypeInfos\RuntimeBlockedTypeInfo.cs at 240:17
System.Text.Json
JsonPropertyInfo.Initialize (Type, Type, Type, Type, PropertyInfo, Type, JsonConverter, JsonSerializerOptions) + 0x11f
System.Text.Json
JsonPropertyInfoCommon`4.Initialize (Type, Type, Type, Type, PropertyInfo, Type, JsonConverter, JsonSerializerOptions) + 0x:59
System.Text.Json
JsonClassInfo.CreateProperty (Type, Type, Type, PropertyInfo, Type, JsonConverter, JsonSerializerOptions) + 0x2f:2
System.Text.Json
JsonClassInfo.AddProperty (Type, PropertyInfo, Type, JsonSerializerOptions) + 0x9e
System.Text.Json
JsonClassInfo.AddPolicyProperty (Type, JsonSerializerOptions) + 0x2f
System.Text.Json.JsonClassInfo
+ 0xdd:1
System.Text.Json
JsonSerializerOptions.GetOrAddClass (Type) + 0x:71
System.Text.Json
WriteStackFrame.Initialize (Type, JsonSerializerOptions) + 0x:13
System.Text.Json
JsonSerializer.WriteCore (Utf8JsonWriter, Object, Type, JsonSerializerOptions) + 0x8d
System.Text.Json
JsonSerializer.WriteValueCore (Utf8JsonWriter, Object, Type, JsonSerializerOptions) + 0x3e
Microsoft.AspNetCore.SignalR.Protocol
JsonHubProtocol.WriteArguments (Object[], Utf8JsonWriter) + 0x1ef
Microsoft.AspNetCore.SignalR.Protocol
JsonHubProtocol.WriteStreamInvocationMessage (StreamInvocationMessage, Utf8JsonWriter) + 0x:65
Microsoft.AspNetCore.SignalR.Protocol
JsonHubProtocol.WriteMessageCore (HubMessage, IBufferWriter`1) + 0x55d
Microsoft.AspNetCore.SignalR.Protocol
JsonHubProtocol.WriteMessage (HubMessage, IBufferWriter`1) + 0xc
Microsoft.AspNetCore.SignalR.Client.HubConnection
<SendHubMessage>d__72.MoveNext () + 0x7f
System.Runtime.ExceptionServices
ExceptionDispatchInfo.Throw () + 0x:21
System.Runtime.CompilerServices
TaskAwaiter.ThrowForNonSuccess (Task) + 0x:70
System.Runtime.CompilerServices
TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task) + 0x:38
System.Runtime.CompilerServices
TaskAwaiter.ValidateEnd (Task) + 0x:17
System.Runtime.CompilerServices
TaskAwaiter.GetResult () + 0xb
Microsoft.AspNetCore.SignalR.Client.HubConnection
<InvokeCore>d__70.MoveNext () + 0x:194
System.Runtime.ExceptionServices
ExceptionDispatchInfo.Throw () + 0x:21
System.Runtime.CompilerServices
TaskAwaiter.ThrowForNonSuccess (Task) + 0x:70
System.Runtime.CompilerServices
TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task) + 0x:38
System.Runtime.CompilerServices
TaskAwaiter.ValidateEnd (Task) + 0x:17
Microsoft.AspNetCore.SignalR.Client.HubConnection
<InvokeCoreAsyncCore>d__69.MoveNext () + 0x:335
System.Runtime.ExceptionServices
ExceptionDispatchInfo.Throw () + 0x:21
System.Runtime.CompilerServices
TaskAwaiter.ThrowForNonSuccess (Task) + 0x:70
System.Runtime.CompilerServices
TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task) + 0x:38
System.Runtime.CompilerServices
TaskAwaiter.ValidateEnd (Task) + 0x:17
System.Threading.Tasks
ForceAsyncAwaiter`1.GetResult () + 0x:18
Microsoft.AspNetCore.SignalR.Client.HubConnection
<InvokeCoreAsync>d__56.MoveNext () + 0x:105
System.Runtime.ExceptionServices
ExceptionDispatchInfo.Throw () + 0x:21
System.Runtime.CompilerServices
TaskAwaiter.ThrowForNonSuccess (Task) + 0x:70
System.Runtime.CompilerServices
TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task) + 0x:38
System.Runtime.CompilerServices
TaskAwaiter.ValidateEnd (Task) + 0x:17
System.Runtime.CompilerServices
TaskAwaiter.GetResult () + 0xb
Chat.Shared.Core.ChatService
<SendPrivateMessageAsync>d__46.MoveNext () + 0x14b
System.Runtime.ExceptionServices
ExceptionDispatchInfo.Throw () + 0x:21
System.Runtime.CompilerServices
TaskAwaiter.ThrowForNonSuccess (Task) + 0x:70
System.Runtime.CompilerServices
TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task) + 0x:38
System.Runtime.CompilerServices
TaskAwaiter.ValidateEnd (Task) + 0x:17
System.Runtime.CompilerServices
TaskAwaiter.GetResult () + 0xb
MyClinicalApp.ViewModels.ChatViewModel.<>c__DisplayClass39_1
<<SendMessage>b__1>d.MoveNext () + 0x:137
System.Runtime.ExceptionServices
ExceptionDispatchInfo.Throw () + 0x:21
System.Runtime.CompilerServices.AsyncMethodBuilderCore
<>c.<ThrowAsync>b__7_0 (Object) + 0x1e
System
Action`1.Invoke (T) + 0x:28
System.Threading.WinRTSynchronizationContext
Invoker.InvokeCore () + 0x:33
System.Runtime.InteropServices
McgMarshal.ThrowOnExternalCallFailed (Int32, RuntimeTypeHandle) + 0x:21
__Interop
ComCallHelpers.Call (__ComObject, RuntimeTypeHandle, Int32) + 0xb:8
__Interop
ForwardComStubs.Stub_15[TThis] (__ComObject, Int32) + 0x:24
Microsoft.AppCenter.Utils
ApplicationLifecycleHelper.<ctor>b__17_1 (Object, UnhandledErrorDetectedEventArgs) + 0x3d

如果有人可以给我任何关于如何确定错误的提示或建议。谢谢。

附:我也尝试过上传调试符号,但我认为应用程序中心页面存在错误,或者我可能做错了什么,问题是在尝试上传大约 20 分钟后,页面被清理,并且没有上传任何内容,此过程我已经尝试了 7 次,但从未成功上传 .appxsym


您看到的问题是由 .NET Native 工具链剥离代码以使程序集更小、更快造成的。不幸的是,.NET Native 不够智能,无法理解何时需要反映类型,并且有时可能会删除您实际上需要的元数据。

调试这个有点复杂,因为您需要尝试确切地确定哪种类型需要元数据并且缺少元数据,并在Default.rd.xml文件,您可以在PropertiesUWP 项目中的文件夹。网上有一个非常有用的.NET Native MissingMetadataException 疑难解答。它旨在为您自动生成正确的 rd.xml 语法。您唯一需要做的就是填写类型/命名空间名称并指定如何反映类型。

要找到问题的确切根源,请将构建配置切换为Release在 Visual Studio 中,然后运行应用程序并观察它在何时崩溃。有时,注释和取消注释代码也有助于找出发生这种情况的确切位置。在你的情况下,我怀疑这是由于 JSON 序列化和反序列化造成的,这种情况经常发生,因为类型仅用于此唯一目的,并且属性“出现”就像没有在任何地方引用一样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当我尝试上传 Microsoft 商店时,UWP/Xamarin 在提交测试中崩溃 的相关文章

随机推荐

  • 在新 Intent 中显示 TabHost 布局时出现问题

    我在 TabActivity 类型的新 Intent 中使用 TabHost 时遇到问题 希望您能为我指出正确的方向 有趣的是 当我尝试在原始意图中查看它时 它工作正常 setContentView R layout main 我收到 强制
  • 为什么我无法在 HTML 标签内插入注释?

    有什么原因导致我无法在 HTML 标记内插入注释吗 示例 HTML 格式 不可能 img src alt Sample Picture class img circle center block gt 而在 JavaScript 中 这可以
  • ServiceStack:存在时从目录提供静态文件吗?

    我正在将我的独立的自制 Web 服务器转换为使用 ServiceStack 来提供所有页面和资源 从这个问题我看出 使用 servicestack 提供静态文件 使用服务堆栈提供单个静态文件很容易 在我自己开发的实现中 在检查 URL 是否
  • WebRTC - 从 Chrome 但不是 Firefox 获取“格式错误的约束对象”

    我想知道我做错了什么 我从中收到 格式错误的约束对象 错误 pc createAnswer function answer fail offerToReceiveAudio true offerToReceiveVideo true 有任何
  • 处理十六进制之间的转换

    我想构建一个函数来轻松地将包含十六进制代码的字符串 例如 0ae34e 转换为包含等效 ascii 值的字符串 反之亦然 我是否必须将十六进制字符串切成两个值对 然后再次将它们组合在一起 或者是否有一种方便的方法可以做到这一点 thanks
  • C#:可空结构上的默认文字和类型推断

    从 C 7 1 开始 可以通过使用获取默认值default不指定类型 我今天尝试了一下 发现可为空结构和可为空值类型的结果有些违反直觉 TestFixture public class Test private class Person p
  • 将 10 位数字转换为十六进制字符串

    如何在 C 中将 10 位数字转换为十六进制字符串 Note 如果数字少于10位 我想添加填充 例子 数字是 1 我希望我的字符串是 0000000001 Use a 标准格式字符串 string paddedHex myNumber To
  • Eigen::Ref<> 作为成员变量

    我需要一个类有一个 Eigen Ref 变量作为静态成员 该变量将通过init静态方法 像这样的东西 class CostFunction public static Eigen Ref
  • 在 Google Analytics 中组合相似的 URL(有一些变化)

    我有很多类似的网址 我想将它们合并到 Google Analytics 分析 中 我已经成功地合并了其中的很多 然而我现在遇到了一些问题 我的 URL 看起来像这样 文章 4567 编辑文章 87478548 编辑 文章 82984786
  • 当您订阅ngrx中的商店时,如何访问以前的状态和当前状态并进行比较?

    在我的组件中 我订阅了 ngrx 存储 该存储在给定状态发生变化时触发 我想设置一个条件 如果当前状态和以前的状态不同 那么我会执行一些操作 如何获取之前的状态 this store select testPortfolio subscri
  • Android 视频方向在 mediarecorder.Start() 上发生变化

    这个问题和帖子类似here here here here and here 但我被困住了 花了几个小时试图弄清楚 我有一个摄像机预览 现在总是以正确的方向显示 但是当我点击录制 mediaRecorder start 时 视频方向会发生变化
  • 在 C++ 中防止名称空间中毒的优雅方法

    我们假设 Bob已将他的库包装到名称空间中 bob and Alice将使整个命名空间在她自己的函数中可见 使用命名空间鲍勃 代替 使用鲍勃 XYZ 对于每一个项目 This file is written by Alice include
  • 角度单元测试 - 反应形式值未更新

    我是角度单元测试的新手 测试场景 html中的表单视图值等于组件表单值 电子邮件值由共享值检索并在组件注册表单中使用 我可以使用反应式表单从组件中检索电子邮件值 但是当尝试通过本机元素访问时 它给出了空 下面是component ts ng
  • Postgres:将自定义类型从 Java 传递到 postgres 函数

    我有一个 postgres 函数 它将复杂的用户定义类型作为输入 CREATE OR REPLACE FUNCTION addUser user IN O USER RETURNS VOID AS BEGIN end language pl
  • 获取系统音量 iOS

    我的情况很简单 我需要播放警告信号并希望确保用户会听到它 所以我想检查系统音量 如何知道当前系统音量是多少 斯威夫特更新 let vol AVAudioSession sharedInstance outputVolume 音频会话可以提供
  • 使用 MySQL 获取整数中零的数量

    假设我在 MySQL 中有一个整数值 10090 我需要计算该数字中出现的所有零数字 因此对于前面的情况它将返回 3 select count zeros number from dual when number 10090 it retu
  • 需要找到页面上隐藏div的高度(设置为display:none)

    我需要测量隐藏元素内部的 div 的 offsetHeight div style display none div Lorem Ipsum dolor sit amet div div 父级divmust设置为 display none
  • 如何制作固定位置的菜单栏?

    我想设计我的菜单栏像这样 当您向下滚动时 它固定在网站的顶部 而当页面加载时 它不会固定在该位置 如何用 CSS 来完成呢 您想要的是 粘性导航栏 菜单 最简单的方法是将以下 CSS 添加到菜单 导航栏 position fixed top
  • C# 2.0:MethodBase.GetCurrentMethod() 可以返回 null 吗?

    我正在追踪 NullReferenceException 并且官方文档是缺乏 这是 C 2 0 代码 看看 Reflector 它看起来可以 MethodImpl MethodImplOptions NoInlining public st
  • 当我尝试上传 Microsoft 商店时,UWP/Xamarin 在提交测试中崩溃

    我正在使用 Xamarin Forms 开发一个带有 SignalR 的消息发送应用程序 我在本地和 Android 上测试了无数次 它运行良好 没有崩溃 但是当他们进行测试以将其上传到微软商店时 他们报告说我的应用程序崩溃了 根据应用程序