我创建了ac#dll来处理应用程序中所有未处理的异常.
添加
AppDomain appDomain = AppDomain.CurrentDomain; appDomain.UnhandledException += new UnhandledExceptionEventHandler(MyErrorHandler);
我的dll项目中的代码,添加了对我的应用程序的引用.
在调试时,如果我的应用程序抛出一个未经处理的异常,它会自动从dll中捕获并成功登录到文件.
但是当我的应用程序被部署(或直接执行我的应用程序(双击exe))时,dll无法从应用程序捕获未处理的异常.
在MSDN上看到这一点
您可以尝试使用add handler来处理应用程序的threadException,也可以尝试使用CurrentDomain Unhandled Exception,就像在代码中编写一样
Application.ThreadException += new ThreadExceptionEventHandler(Error_.MyExc); Application.SetUnhandledExceptionMode(Error_.MyCatchExc); // from your code AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyErrorHandler);