非常简单的WPF应用程序,从调试器启动时运行Debug和Release版本
当我尝试从命令行启动其中一个.exes时,它会崩溃
在生成发送给MS的xml文件中,我发现了这个:
<ProblemSignatures>
<EventType>APPCRASH</EventType>
<Parameter0>App.exe</Parameter0>
<Parameter1>0.2.0.0</Parameter1>
<Parameter2>5260abb5</Parameter2>
<Parameter3>KERNELBASE.dll</Parameter3>
<Parameter4>6.1.7601.18229</Parameter4>
<Parameter5>51fb1677</Parameter5>
<Parameter6>e0434352</Parameter6>
<Parameter7>000000000000940d</Parameter7>
</ProblemSignatures>
我已经为AppDomain.CurrentDomain.UnhandledException添加了一个处理程序,但它似乎没有抓到任何东西。
我很欣赏任何可能出错的想法...不正确地处理资源,例如应用程序使用的一些.png文件?
从注册表中读取值的问题?
TIA -
答案 0 :(得分:0)
当你说你的AppDomain.CurrentDomain.UnhandledException
事件处理程序没有抓到任何东西时,你在谈论调试时是什么时候?如果是这样,那就没关系......在该处理程序中添加一些代码,将Exception
(以及任何内部Exception
s)的详细信息保存到文本文件中。现在构建一个新的Release版本并运行它。这样,您至少应该了解问题的详细信息。
如果出于任何原因无效,那么您的问题必须位于MainWindow.cs
构造函数中,或者在构造函数中调用的代码中,或者WPF Framework可能调用的任何代码中。启动。因此,如果仔细查看启动代码,您可能能够识别可能导致问题的任何代码行。
这样的示例是访问资源的任何代码,尤其是数据库和网络驱动器,或者任何可能脱机或用户可能无权访问的其他任何代码。当您检测到这些代码行时,只需向MessageBox.Show
添加一大堆调用,即可显示当前值:
MessageBox.Show("Debugging", string.Format("Model: ", Model.ToString()));
MessageBox.Show("Debugging", string.Format("User: ", User.ToString()));
MessageBox.Show("Debugging", string.Format("User.Security: ", User.Security.ToString()));