我的Windows 8应用商店应用程序在应用程序认证工具包中崩溃,我如何找出原因



因此,当我创建应用程序包时,Windows App Certification Kit失败,并显示:

崩溃和挂起•发现错误:检测到崩溃和挂断测试以下错误:◦应用47878User.MyApp_1.0.03._neutral_a2qvk4qztz7j被Windows检测到错误报告,遇到崩溃或挂起。

在我的事件日志中,我看到以下内容:

应用程序:MyApp.exe Framework版本:v4.0.30119描述:进程由于未处理的异常而终止。异常信息:System.Exception堆栈:位于位于的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Sthrow()System.Threading.WinRTSynchronizationContext+Invoker.b_0(System.Object)在System.Threading.QueueUserWorkItemCallback.WetCallback_Context(System.Object)在System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext,System.Threading.Context回调,System.Object,布尔值)System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,System.Threading.Context回调,System.Object,布尔值)System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()位于的System.Threading.ThreadPoolWorkQueue.Dispatch()System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

和:

出现故障的应用程序名称:MyApp.exe,版本:1.0.0.0,时间戳:0x50546b92故障模块名称:KERNELBASE.dll,版本:6.2.9200.16384,时间戳:0x5010ac2f
异常代码:0xe043352
故障偏移量:0x00014b32
出现故障的进程id:0x1894
发生故障的应用程序启动时间:0x01cd933a183ece6a
发错的应用程序路径:C: \程序Files\WindowsApps\47878User.MyApp_1.0.0.3_neutral_a2qvk0qzyyn7m\MyApp.exe
故障模块路径:C:\Windows\SYSTEM32\KERNELBASE.dll报告Id:6b9e9db3-ff2d-11e1-be8d-001c42ac6e2f故障包全名:47878用户.MyApp_1.0.0.3_中性__a2qvk0qzyyn7m

问题是,我一生都无法再现任何崩溃,无论是在调试模式、发布模式、强制挂起/重新激活事件等。

当Windows应用程序认证工具包第6次(或第7次)运行我的应用程序时,我的启动屏幕会短暂显示,然后我的应用消失(很可能崩溃)
WAPK在第6次运行中做了什么,我如何复制/调试它?

我不是专家,但我刚刚对我的应用程序进行了同样的处理,看看我是否能弄清楚发生了什么。下面是我所做的事情的总结(希望对其他人有用)。

认证套件结果

失败:崩溃并挂起

发现错误:崩溃和挂起测试检测到以下错误:

Windows错误报告检测到应用程序中性__6j94sra26jgtm,并出现崩溃或挂起。影响(如果不修复):应用程序停止响应或崩溃可能会导致数据丢失,用户体验不佳。如何修复:调查、调试有问题的可执行文件以确定并修复问题,然后重建并重新测试应用程序。在软件开发生命周期中使用应用程序验证程序。

这一点帮助都没有。我想这个链接在这次讨论后已经更新了,但我认为它没有那么有用。

调查

一些错误记录在事件查看器中(windows键+R,键入"eventvwr")。我可以看到三个有用的条目:

  • Windows错误报告事件
  • 应用程序错误事件
  • .NET运行时事件

Windows错误报告事件提供了更多信息,包括它保存日志文件的一些文件路径。

我最终从命令行运行了windows应用程序认证工具,并隔离了未通过PerfromanceShutdown测试的测试。用于从命令提示符运行的命令是:

C:Program Files (x86)Windows Kits8.0App Certification Kit>appcert test -apptype windowsstoreapp -packagefullname <applicationfullname> -reportoutputpath e:ProjectsAlbumFlow.Win8output1.xml

这将导致我们在suspend/exit/resume方法中发生一些事情。

我看的另一个地方是C:Users<userName>AppDataLocalMicrosoftAppCertKit。这有几个大文件(约100Mb)的Windows性能分析跟踪文件。这看起来很有用,但我不明白。

解决方案当我查看跟踪文件时,团队中的其他人发现暂停管理器没有正确关闭文件引用。

这可以通过使用visualstudio中的DebugLocation工具栏来复制。选择挂起、继续、挂起和终止再现了问题。

希望这能帮助到一些人,因为调试这些错误似乎有点黑暗。

好的,我几天前发现了这个问题。

我没有正确测试暂停和关闭场景。

如果有人有类似的问题;启用调试位置工具栏(视图->工具栏->调试位置)

开始调试并选择"挂起并关闭"选项。

我的OnSuspending事件中出现了未处理的异常。

对于所有访问这个问题的人来说,我有一个食谱:

清除应用程序事件日志。

在我的案例中,我遇到了以下问题:从前,我们的QA在未来设置设备时间来测试一些特定于应用程序的东西。我们很不幸在未来推出WACK。我们的应用程序崩溃了。在经历了一段时间后,我们再也没能通过WACK崩溃并在该设备上进行挂起测试。原因是WACK本身似乎使用Windows事件日志从Windows错误报告中查找报告。在这种情况下,它发现了它们,因为它们在未来仍然存在。更糟糕的是,在默认事件视图中,这些未来的条目实际上是由那些在时间戳之后到达的条目推到底部的,所以除非你明确地按日期对事件日志进行排序,否则很难看到它们;时间

我真希望我能救一个人几个小时的头带。

如果关闭了UAC,您也将无法通过这些"崩溃和挂起"测试。

最新更新