我该如何解决Windows崩溃错误

我的应用程序在客户端应用程序文件夹中创建一个exe并尝试从那里运行它。 即使exe运行正常且function没有受到干扰,我也会收到一个崩溃弹出窗口,其中包含以下细节。 相同的东西在我们的开发和测试机器中工作,没有崩溃弹出窗口。

我设法找到暂时解决这种情况的唯一办法是设置注册表项如下

HKEY_CURRENT_USER\Software\Microsoft\Windows\Windows Error Reporting DontShowUI =1 

现在我对可能导致此exception的原因一无所知,因为唯一的提示是我在错误详细信息中找到的more.dll ,这不是我在项目中添加的参考。 有没有更好的方法以编程方式解决此问题,或者有人可以帮助我更多的想法。

  Problem signature: Problem Event Name: APPCRASH Application Name: MNM_Interface.exe Application Version: 1.0.0.0 Application Timestamp: 54eaf32a Fault Module Name: more.dll Fault Module Version: 1.2.1.0 Fault Module Timestamp: 54e2d422 Exception Code: c0000005 Exception Offset: 0040bb62 OS Version: 6.1.7601.2.1.0.256.4 Locale ID: 1033 Additional Information 1: 0a9e Additional Information 2: 0a9e372d3b4ad19135b953a78882e789 Additional Information 3: 0a9e Additional Information 4: 0a9e372d3b4ad19135b953a78882e789 Read our privacy statement online: http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409 If the online privacy statement is not available, please read our privacy statement offline: C:\windows\system32\en-US\erofflps.txt 

我不知道下面的事件查看器日志是否有帮助,但我认为专家可以得到一些线索。

 Faulting application name: MNM_Interface.exe, version: 1.0.0.0, time stamp: 0x5523d05b Faulting module name: more.dll, version: 1.2.1.0, time stamp: 0x54e2d422 Exception code: 0xc0000005 Fault offset: 0x0040bb62 Faulting process id: 0x1870 Faulting application start time: 0x01d0713b195e7b30 Faulting application path: C:\MNM\Pictures 1.1.0\MNM_Interface.exe Faulting module path: C:\MNM\Pictures 1.1.0\more.dll Report Id: 586ce056-dd2e-11e4-b2ce-08edb9de061e 

你是否使用了一些资源,如图标,位图,dll或其他类型的程序使用,但目前它们不可用? 如果是 – 尝试删除它们并查看程序的行为方式。

正如@BJMyers所说,这是一个未经处理的例外。 您可以编写外部程序来测试/处理exception。 你可以有类似的东西:

 AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionFunction; private void UnhandledExceptionFunction(Object sender, UnhandledExceptionEventArgs args) { Exception ex = (Exception)(args.ExceptionObject); System.Diagnostics.StackFrame frame = new System.Diagnostics.StackFrame(0); string method; method = frame.GetMethod().ReflectedType.FullName; } 

一个好的开始方法是查看args参数以获取ExceptionType 。 如果您想获得更多细节,例如导致exception的方法,您可以查看StackFrame