Как отключить обработку исключений .NET Framework и использовать вместо этого мою собственную?

Я разработал программное обеспечение .NET 4, и я ' м готов отправить его бета-пользователям. Если в программном обеспечении возникает необработанное исключение, я хотел бы его поймать, зарегистрировать и отправить мне журналы. Я уже реализовал эту функцию, и, похоже, она работает нормально, когда я запускаю ее в режиме отладки с Visual Studio. Однако, когда я создал окончательную версию программного обеспечения и установил ее, Microsoft .NET Framework начинает перехватывать исключения раньше, чем мой код. Я получаю всплывающее окно с сообщением об ошибке: «Необработанное исключение произошло в компоненте вашего приложения. Если вы нажмете« Продолжить », приложение проигнорирует эту ошибку и попытается продолжить».

Чтобы проверить сбой, я создал сбой кнопка вниз, которая вызывает исключение. Этот сбой регистрирует себя, а обработчик исключений регистрирует все полученные необработанные исключения. Когда я смотрю журнал версии выпуска, Я могу видеть только сообщение журнала при сбое, но не из обработчика исключений.

Я прикрепил свой собственный обработчик исключений с помощью этого кода:

AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

Есть ли способ отключить перехват исключений в .NET Framework или есть есть ли лучший способ подключить мой собственный обработчик исключений?

ОБНОВЛЕНИЕ: Я использую WPF. Я изучу DispatcherUnhandledException и дам вам знать, решит ли оно проблему.

ОБНОВЛЕНИЕ №2: К сожалению, добавление обработчика в Application.Current.DispatcherUnhandledException не решило проблему. По-видимому, это всплывающее окно отладки создается отладчиком JIT (Just-In-Time), который включен в Visual Studio. Придется протестировать программное обеспечение на "гражданской" Windows и посмотреть, не обнаруживаются ли исключения и там.

ОБНОВЛЕНИЕ №3: По какой-то причине выпуск, созданный с помощью Visual Studio, работает, а выпуск, созданный с использованием сценариев MSBuild и Dotfuscator, - нет.

11
задан Ville Salonen 17 September 2010 в 10:57
поделиться