我的Windows 8商店应用程序在应用程序认证工具包中崩溃了,我怎样才能找到原因?

时间:2012-09-15 12:24:52

标签: crash windows-8 windows-runtime

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

  

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

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

  

应用程序:MyApp.exe Framework版本:v4.0.30319描述:   由于未处理的异常,进程被终止。例外信息:   System.Exception Stack:at   System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()at   System.Threading.WinRTSynchronizationContext + Invoker.b__0(System.Object的)   在   System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object的)   在   System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext,   System.Threading.ContextCallback,System.Object,Boolean)at   System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,   System.Threading.ContextCallback,System.Object,Boolean)at   System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()   在System.Threading.ThreadPoolWorkQueue.Dispatch()at   System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

  

错误应用程序名称:MyApp.exe,版本:1.0.0.0,时间戳:   0x50546b92错误模块名称:KERNELBASE.dll,版本:   6.2.9200.16384,时间戳:0x5010ac2f
  例外代码:0xe0434352
  故障偏移:0x00014b32
  错误进程id:0x1894
  故障应用程序启动时间:0x01cd933a183ece6a
  错误的申请路径:   C:\ PROGRAM   文件\ 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 个答案:

答案 0 :(得分:7)

我不是专家,但我刚刚通过我的应用程序执行相同的过程,看看我是否可以解决发生的事情。下面是我所做的事情(希望对其他人有用)。

认证工具包结果

失败:崩溃并挂起

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

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

这根本没有帮助。我假设自this discussion以来链接已更新,但我并不认为它有用。

<强>研究

事件查看器中记录了一些错误(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性能分析跟踪文件。这看起来很有用,但我不明白。

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

可以使用DebugLocation toolbar in visual studio重现这一点。选择暂停,恢复,暂停和终止再现了问题。

希望这可以帮助某人,因为它似乎是一个调整这些错误的黑暗艺术。

答案 1 :(得分:4)

好的,我发现了问题a couple of days ago

我没有正确测试暂停和关闭方案。

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

开始调试并选择Suspend and Shutdown选项。

我的OnSuspending活动中有一个未处理的异常。

答案 2 :(得分:1)

对于所有来访问这个问题的人都非常沮丧并且不理解为什么没有转储,没有实际崩溃或挂起的迹象,没有来自应用程序事件日志中出现的Windows错误报告的新条目,我有一个食谱:

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

在我的情况下,我遇到了以下问题:曾几何时,我们的质量保证会在未来设置设备时间来测试某些特定于应用程序的内容。我们不幸的是在未来的时候推出了WACK。我们的应用程序崩溃了。在有时间解开实际后,我们再也没有设法通过WACK崩溃并在该设备上挂起测试。原因是WACK本身似乎使用Windows事件日志从Windows错误报告中查找报告。在这种情况下,它会找到它们,因为它们实际上仍然存在于未来。让事情变得更糟的是,这些未来的条目实际上是在默认事件视图中被推到了尽管有时间戳后到达的那些,所以它们很难看,除非你按日期排序事件日志和日期。时间。

我希望我能节省几个小时的电子邮件。

答案 3 :(得分:0)

如果您关闭了UAC,您也会失败这些“崩溃和挂起”测试。