【问题标题】:How do you debug a Microsoft Store Package?如何调试 Microsoft Store 包?
【发布时间】:2019-04-19 17:19:16
【问题描述】:

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

我尝试在未处理的指令上放置一个弹出消息框,但没有弹出任何消息。

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

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

【问题讨论】:

  • 它实际上是“本机”代码吗?它是用什么语言写的?如果您使用 C#,您是否使用过 AOT 编译器?
  • 谢谢,我更新了代码以更具体。我们谈论的是 .NET Native Tool Chain 选项。

标签: visual-studio uwp native-code


【解决方案1】:

好的。这吃掉了我一天的生活。事实证明,至少有一类错误甚至不被 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' 类型的对象 'GammaFour.Views.Controls.PriceControl'。 [行:0 位置:0]

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

【讨论】:

  • 您好@Donald Airey,在阅读您的帖子时,我想知道您如何设置日志系统。也许使用好的记录器和适当的设置,您可以更快地找到问题的根源。
  • @NickPolyderopoulos - 不,使用 Serilog 进行日志记录没有发现崩溃或样式中目标控件之间的不匹配。
【解决方案2】:

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

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

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

【讨论】:

  • 对这个文件没有任何兴趣。
猜你喜欢
  • 1970-01-01
  • 2020-10-09
  • 2022-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-25
  • 1970-01-01
  • 2021-02-13
相关资源
最近更新 更多