次の方法で共有


異なるアプリケーション ドメインを使用してクラッシュを回避する

IDTExtensibility2 インターフェイスを実装するマネージ アドインは、すべて同じ既定のアプリケーション ドメインに読み込まれます。 アプリケーション ドメイン内のアドインがクラッシュすると、同じアプリケーション ドメイン内の他のアドインも動作しなくなる可能性があります。

この問題を回避するには、アドイン用の shim を作成し、アドインを専用のアプリケーション ドメインに読み込むことができます。 shim は、C++ で作成されたアンマネージ ダイナミック リンク ライブラリです。 shim を使用するときは、アドインの代わりに shim を登録します。 Outlook が shim を読み込むと、shim が対応するアドインを読み込みます。 アドインごとに個別に shim を作成して登録する必要があります。 マネージ アドイン用の shim の作成方法については、「Isolating Office Extensions with the COM Shim Wizard 」を参照してください。

その他の方法で別のアプリケーション ドメインにアドインを読み込むには、Visual Studio 2010 以降のリリースの Office Developer Tools for Visual Studio で Office 開発ツールを使用してアドインを開発します。 これに該当するバージョンの Office Developer Tools for Visual Studio で開発したアドインは、IDTExtensibility2 インターフェイスを実装しないで、IStartup インターフェイスを使用します。 こうしたアドインは、Visual Studio が提供するローダー AddinLoader.dll を使用します。このローダーは、汎用の shim のように動作します。 Outlook は、Visual Studio で作成されたアドインについてレジストリを調べます。

そうしたアドインを Outlook が検出すると、Outlook は AddinLoader.dll を開始します。これにより、Visual Studio Tools for Office ランタイムが開始され、アプリケーション マニフェストが Visual Studio Tools for Office ランタイムに中継されます。 その後、Visual Studio Tools for Office ランタイムは、該当するアドインを個別のアプリケーション ドメインに読み込みます。 Visual Studio がアドインを読み込む方法の詳細については、「VSTO アドインのアーキテクチャ」を参照してください。