Моя надстройка написана на С#, NetOffice, ExcelDNA с использованием WPFframework. Часть тоже использует winforms. Основной пользовательский интерфейс — WPF.
Когда отображается модальное диалоговое окно, пользователи принудительно закрывают Excel. В следующий раз, когда они запустят Excel, Excel сообщит: «В Excel возникла серьезная проблема с надстройкой «*». Если вы видели это сообщение несколько раз, вам следует отключить эту надстройку и проверить, чтобы увидеть если доступно обновление. Вы хотите отключить эту надстройку?"
Да нет
Пользователи обычно нажимают «Да» или входят, не прочитав сообщение, после чего моя надстройка исчезает из Excel. Поэтому я не хочу, чтобы этот диалог отображался. Возможно ли это и как? Благодарность
Я пытаюсь поймать все исключения в AutoOpen(), как показано ниже. Но, похоже, вообще не остановить диалог.
public void AutoOpen()
{
.....
System.Windows.Forms.Application.ThreadException += ApplicationOnThreadException;
AppDomain.CurrentDomain.UnhandledException += CurrentDomainUnhandledException;
Dispatcher.CurrentDispatcher.UnhandledException += CurrentDispatcher_UnhandledException;
TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException;
....
}
public void TaskScheduler_UnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e)
{
Helper.LogError(e.Exception);
}
public void ApplicationOnThreadException(object sender, ThreadExceptionEventArgs threadExceptionEventArgs)
{
Helper.LogError(threadExceptionEventArgs.Exception);
}
public void CurrentDomainUnhandledException(object sender, UnhandledExceptionEventArgs args)
{
if (!(args.ExceptionObject is ThreadAbortException))
{
Exception exc = args.ExceptionObject as Exception;
Helper.LogError(exc);
}
}
public void CurrentDispatcher_UnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
{
Helper.LogError(e.Exception);
e.Handled = true;
}