如何调试Microsoft Store包?

问题描述 投票:0回答:2

我在一个简单的Web应用程序上有一个简单的UWP客户端。当我使用Debug配置运行它时,它运行良好,当我使用Release运行时,它运行良好。但是,当我为Microsoft Store创建一个包并在本地部署它时,当我尝试调出某类文档时,它会崩溃。

我试图在未处理的指令上放置一个弹出消息框,但不要弹出任何弹出窗口。

我试图用Visual Studio调试器附加它,但我得到的是一条消息,Visual Studio无法调试本机代码。看来.Net Native Tool Chain标志是我的应用程序的工作版本和崩溃版本之间的唯一区别。

有关如何调试此问题的任何想法/线索?

visual-studio uwp native-code
2个回答
0
投票

您无法调试发行包,但可以通过访问位于其中的错误报告来提取异常代码

C:\Users\All Users\Microsoft\Windows\WER\ReportArchive

尝试使用一些诊断工具打开wer文件,如Diagnostic Data ViewerAppCrashView,并查看异常代码。


0
投票

好。这吃了我生命中的一天。事实证明,至少有一类错误甚至不被RTL视为警告,而是.NET Native代码中的未处理异常。我在控件中使用的样式没有适当的基本控件。这是用法:

  <gfcontrols:PriceControl DataContext="{Binding Path=LastPrice}"
                           Style="{StaticResource PriceStyle}"/>

这是风格:

  <Style x:Key="PriceStyle"
         TargetType="controls:QuantityControl">
    <Setter Property="Format"
            Value="#,##0.00;-#,##0.00"/>
  </Style>

请注意,QuantityControl不是PriceControl的可接受目标类型,因为它们都是ContentControl的子项。在Visual Studio调试器中运行它不会导致任何警告甚至信息性消息。但是,一旦我通过Hockey Crash Diagnostics加载它,我终于得到了消息:

无法将具有TargetType“GammaFour.Views.Controls.DecimalControl”的Style应用于“GammaFour.Views.Controls.PriceControl”类型的对象。 [线:0位置:0]

因此,答案是:如果您希望诊断UWP应用程序错误,则需要熟悉链接中提到的Hockey实用程序,因为显然,并非本机代码中允许RTL中允许的所有内容。

© www.soinside.com 2019 - 2024. All rights reserved.