我创建了一个c#dll来处理应用程序中所有未处理的异常。
添加了
AppDomain appDomain = AppDomain.CurrentDomain;
appDomain.UnhandledException += new UnhandledExceptionEventHandler(MyErrorHandler);
我的dll项目中的代码,添加了对我的应用程序的引用。
在调试时,如果我的应用程序抛出一个未经处理的异常,它会自动从dll中捕获并成功登录到文件。
但是当我的应用程序被部署(或直接执行我的应用程序(双击exe))时,dll无法从应用程序中捕获未处理的异常。
答案 0 :(得分:5)
请参阅MSDN上的this
您可以尝试将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);