7

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

崩溃和挂起 • 发现错误:崩溃和挂起测试检测到以下错误:◦Windows 错误报告检测到应用程序 47878User.MyApp_1.0.0.3_neutral__a2qvk4qzttz7j 并遇到崩溃或挂起。

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

应用程序:MyApp.exe 框架版本:v4.0.30319 描述:进程因未处理的异常而终止。异常信息:System.Exception 堆栈:在 System.Threading.WinRTSynchronizationContext+Invoker.b__0(System.Object) 在 System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object) 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System .Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) 在 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object,布尔值)在 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 在 System.Threading.ThreadPoolWorkQueue。

和:

错误应用程序名称:MyApp.exe,版本:1.0.0.0,时间戳:0x50546b92 错误模块名称:KERNELBASE.dll,版本:6.2.9200.16384,时间戳:0x5010ac2f
异常代码:0xe0434352
错误偏移量:0x00014b32
错误进程 id:0x1894
错误应用程序启动时间:0x01cd933a183ece6a
错误应用程序路径:C:\Program Files\WindowsApps\47878User.MyApp_1.0.0.3_neutral__a2qvk0qzyyn7m\MyApp.exe
错误模块路径:C:\Windows\SYSTEM32\KERNELBASE.dll 报告 ID:6b9e9db3-ff2d-11e1 -be8d-001c42ac6e2f 错误包全名:47878User.MyApp_1.0.0.3_neutral__a2qvk0qzyyn7m

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

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

4

4 回答 4

7

我不是专家,但我刚刚完成了与我的申请相同的过程,看看我是否能弄清楚发生了什么。以下是我所做的事情(希望对其他人有用)。

认证套件结果

失败:崩溃并挂起

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

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

这根本没有帮助。我认为链接自本次讨论以来已更新,但我认为它没有那么有用。

调查

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

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

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

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

C:\Program Files (x86)\Windows Kits\8.0\App Certification Kit>appcert test -apptype windowsstoreapp -packagefullname <applicationfullname> -reportoutputpath e:\Projects\AlbumFlow.Win8\output1.xml

这导致我们在暂停/退出/恢复方法中发生了一些事情。

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

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

这可以通过使用Visual Studio 中的 DebugLocation 工具栏来重现。选择 Suspend、Resume、Suspend 和 Terminate 会重现该问题。

希望这对某人有所帮助,因为调试这些错误似乎是一种黑暗艺术。

于 2012-09-24T13:09:55.447 回答
4

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

我没有正确测试挂起和关机场景。

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

开始调试并选择暂停和关闭选项。

我的 OnSuspending 事件中有一个未处理的异常。

于 2012-09-24T13:44:37.870 回答
1

对于所有来访问这个问题的人都深感沮丧,不明白为什么没有转储,没有实际崩溃或挂起的迹象,没有来自 Windows 错误报告的新条目出现在应用程序事件日志中,我有一个秘诀:

清除您的应用程序事件日志。

就我而言,我遇到了以下问题:曾几何时,我们的 QA 会在未来设置设备时间来测试一些特定于应用程序的东西。我们很不幸地在未来推出了 WACK。我们的应用程序崩溃了。在有时间放松到实际之后,我们再也没有设法通过 WACK 崩溃并再次在该设备上挂起测试。原因是 WACK 本身似乎使用 Windows 事件日志从 Windows 错误报告中查找报告。在这种情况下,它会找到它们,因为它们实际上仍然存在,在未来。更糟糕的是,这些未来的条目实际上在默认事件视图中被那些尽管有时间戳但后来到达的条目推到了底部,因此它们很难看到,除非您按日期和时间对事件日志进行显式排序。

我希望我能救人几个小时的头撞。

于 2013-12-02T12:03:42.443 回答
0

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

于 2014-07-03T23:47:32.263 回答