9

最近継承したOutlook2007アドインがありますが、現在、一部のユーザーが定期的かつ一見ランダムにアドインを無効にするという問題が本番環境で発生しています。アドインからのログはなく、アドインコードへのすべてのメソッド/イベント呼び出しの周りにtry / catch(およびeat)ブロックがあります。いくつかのグーグルを実行しましたが、Outlookに未処理の例外がスローされた場合、Outlookはこのアドインの「ソフト無効化」を実行することがわかりました。

私が知る限り、アドインからスローされている例外はありません。私がやりたいのは、1)アドインにある種のグローバル例外ハンドラーを作成して、すべての例外が確実にキャッチされるようにすることです。または2)どういうわけか、レジストリ内のアドインを「無効化」し、このリスナーにOutlookが設定しているregキーを削除させるOutlookをリッスンします。

私は次の方法で#1を実行しようとしました。

AppDomain.CurrentDomain.UnhandledException += AppDomain_UnhandledException;
System.Windows.Forms.Application.ThreadException += Application_ThreadException;

しかし、どちらも成功していません。

System.Windows.Forms.Application.ThreadExceptionが必ずしもOutlookアドインに適用されるとは限らないことに気付きましたが、試してみませんか。

また、Outlookがアドイン用に別のAppDomainを起動することを読んだので、AppDomain.CurrentDomainがこれで機能することを期待していました。テストのために意図的に例外をスローし、これらのイベントのいずれにもエントリを取得できないコードをいくつか作成しましたが、Outlookは引き続きアドインを無効にしました。

どんな助け/洞察も大歓迎です。

4

1 に答える 1

1

Outlookアドインが無効になると、読み込み動作が3から2に変更されます。レジストリからこの読み込み動作を確認して、アドインが無効になっているかどうかを確認できます。

于 2010-07-12T13:21:03.070 に答える