让我从我的主要问题开始,然后在下面添加一些具体细节和历史。我已经进行了研究,但似乎无法将各个部分拼凑在一起。请在投票之前要求澄清。
我的问题: 为什么我的Windows Store应用程序可以在Win 8.1 64位和Win 8.1 32位(Atom)平板电脑上本地启动并正确运行,但对其他用户而言却无法启动?
当我从Windows Store认证失败中获取转储文件时,如何使调试符号起作用以便我可以看到更多问题?
当我在“发布”模式下构建时,它是否实际将符号放入.pdb文件中?并且它是否索引符号?
这是历史:
我开发了一个小游戏作为通用应用程序,适用于Win Phone和Windows Store。 Win Phone版本在商店中,正在被下载,并且正常工作。
Windows Store版本存在问题。
它在我的电脑上运行,Win 8.1 64位。它在我的平板电脑上运行,Win 8.1 Atom,我通过Visual Studio内的远程调试安装它。它在我的电脑上通过了应用认证。但是当我将包提交到Windows Store时,它未通过,并且报告说启动时崩溃。(某种方式上第一个appx包已经发布到商店,然后稍后他们回复说它崩溃了,所以有些用户说该应用程序无法加载。)
因此,我下载调试数据并打开.dmp文件。我得到异常代码0xC000027B。
在网上搜索,我发现这是一种“语言异常”,是一种通用错误,表示错误未处理。根据像这样的文章(http://blogs.msdn.com/b/ntdebugging/archive/2014/01/13/debugging-a-windows-8-1-store-app-crash-dump.aspx)进行操作。
我尝试获取我的应用程序的符号以查看是否有帮助。我在本地符号缓存文件夹(c:\ symbols \ myApp \ 1.3.0.7)中添加了一个文件夹,以便Visual Studio可以捕获它们,并从我提交到商店的apx包中复制了.exe,.dll和.pdb文件,但仍然收到以下消息:
'WER38D7.tmp.dmp'(Minidump):已加载'*CryptoQuoteW8cs.exe'。该模块未使用符号构建。
'WER38D7.tmp.dmp'(CLR v4.0.30319:):已加载'*CryptoQuoteW8cs.exe'。未找到匹配的二进制文件。
'WER38D7.tmp.dmp'(CLR v4.0.30319:):已加载'*CryptoLogic.DLL'。未找到匹配的二进制文件。
运行时捕获到致命异常。请参阅Watch窗口中的$stowedexception以查看原始异常信息。
所以,我不知所措。如何使我的应用程序正常工作?是哪个错误阻止了它?为什么它在本地能通过认证,但在商店里不能?我该如何找出原因?我已经在Bing和Microsoft上搜索过了,也许我只是没有搜索正确的内容。请帮帮我!
我的问题: 为什么我的Windows Store应用程序可以在Win 8.1 64位和Win 8.1 32位(Atom)平板电脑上本地启动并正确运行,但对其他用户而言却无法启动?
当我从Windows Store认证失败中获取转储文件时,如何使调试符号起作用以便我可以看到更多问题?
当我在“发布”模式下构建时,它是否实际将符号放入.pdb文件中?并且它是否索引符号?
这是历史:
我开发了一个小游戏作为通用应用程序,适用于Win Phone和Windows Store。 Win Phone版本在商店中,正在被下载,并且正常工作。
Windows Store版本存在问题。
它在我的电脑上运行,Win 8.1 64位。它在我的平板电脑上运行,Win 8.1 Atom,我通过Visual Studio内的远程调试安装它。它在我的电脑上通过了应用认证。但是当我将包提交到Windows Store时,它未通过,并且报告说启动时崩溃。(某种方式上第一个appx包已经发布到商店,然后稍后他们回复说它崩溃了,所以有些用户说该应用程序无法加载。)
因此,我下载调试数据并打开.dmp文件。我得到异常代码0xC000027B。
在网上搜索,我发现这是一种“语言异常”,是一种通用错误,表示错误未处理。根据像这样的文章(http://blogs.msdn.com/b/ntdebugging/archive/2014/01/13/debugging-a-windows-8-1-store-app-crash-dump.aspx)进行操作。
我尝试获取我的应用程序的符号以查看是否有帮助。我在本地符号缓存文件夹(c:\ symbols \ myApp \ 1.3.0.7)中添加了一个文件夹,以便Visual Studio可以捕获它们,并从我提交到商店的apx包中复制了.exe,.dll和.pdb文件,但仍然收到以下消息:
'WER38D7.tmp.dmp'(Minidump):已加载'*CryptoQuoteW8cs.exe'。该模块未使用符号构建。
'WER38D7.tmp.dmp'(CLR v4.0.30319:):已加载'*CryptoQuoteW8cs.exe'。未找到匹配的二进制文件。
'WER38D7.tmp.dmp'(CLR v4.0.30319:):已加载'*CryptoLogic.DLL'。未找到匹配的二进制文件。
运行时捕获到致命异常。请参阅Watch窗口中的$stowedexception以查看原始异常信息。
所以,我不知所措。如何使我的应用程序正常工作?是哪个错误阻止了它?为什么它在本地能通过认证,但在商店里不能?我该如何找出原因?我已经在Bing和Microsoft上搜索过了,也许我只是没有搜索正确的内容。请帮帮我!
编辑:
从windbag,我得到了这个调用堆栈。
combase!RoFailFastWithErrorContextInternal2(HRESULT hrError = 0xaaaaaaaa, unsigned long cStowedExceptions = 0xaaaaaaaa, struct _STOWED_EXCEPTION_INFORMATION_V2 ** aStowedExceptionPointers = 0xaaaaaaaa)+0x10a [d:\blue_gdr\com\combase\winrt\error\error.cpp @ 1035]
combase!RoFailFastWithErrorContextInternal(HRESULT hrError = 0xaaaaaaaa, unsigned long cStowedExceptions = 0xaaaaaaaa, struct _STOWED_EXCEPTION_INFORMATION_V1 ** aStowedExceptionPointers = 0xaaaaaaaa)+0x10b [d:\blue_gdr\com\combase\winrt\error\error.cpp @ 948]
kernel32!BaseThreadInitThunk+0xe
ntdll!__RtlUserThreadStart+0x20
ntdll!_RtlUserThreadStart+0x1b