wpf app从调试器启动,但不是独立的.exe

时间:2013-10-18 03:39:14

标签: wpf

非常简单的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 -

1 个答案:

答案 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()));