私のアドインは、WPFframework を使用して c#、NetOffice、ExcelDNA で作成されています。一部には winform も使用されています。メインUIはWPF
モーダル ダイアログが表示されている場合、ユーザーは強制的に Excel を閉じます。次回 Excel を起動すると、「Excel は ' * ' アドインで重大な問題が発生しました。このメッセージが何度も表示された場合は、このアドインを無効にして、更新が利用可能かどうかを確認してください。このアドインを無効にしますか?」
はい・いいえ
ユーザーは通常、メッセージを読まずに [はい] をクリックするか、Enter をクリックすると、アドインが 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;
}