VSTO アドインのアーキテクチャArchitecture of VSTO Add-ins

Visual Studio の Office Developer Tools を使用して作成される VSTO アドインには、安定性とセキュリティを重視するアーキテクチャ上の特性があり、Microsoft Office と密接に連携させることができます。VSTO Add-ins created by using the Office developer tools in Visual Studio have architectural features that emphasize stability and security, and enable them to work closely with Microsoft Office. このトピックでは、VSTO アドインの次の点について説明します。This topic describes the following aspects of VSTO Add-ins:

VSTO アドインを理解します。Understand VSTO Add-ins

VSTO アドインをビルドする Visual Studio で Office developer tools を使用する場合は、Microsoft Office アプリケーションによって読み込まれるマネージ コード アセンブリを作成します。When you use the Office developer tools in Visual Studio to build a VSTO Add-in, you create a managed code assembly that is loaded by a Microsoft Office application. アセンブリが読み込まれると、VSTO アドインがアプリケーションで発生するイベント (ユーザーがメニュー項目をクリックした場合など) に応答できます。After the assembly is loaded, the VSTO Add-in can respond to events that are raised in the application (for example, when a user clicks a menu item). また、VSTO アドインはオブジェクト モデルを呼び出して、アプリケーションの自動化や拡張を行うこともでき、さらに .NET Framework.NET Frameworkのすべてのクラスも使用できます。The VSTO Add-in can also call into the object model to automate and extend the application, and it can use any of the classes in the .NET Framework.NET Framework.

アセンブリは、アプリケーションのプライマリ相互運用機能アセンブリを介してアプリケーションの COM コンポーネントとの通信を行います。The assembly communicates with the application's COM components through the primary interop assembly of the application. 詳細については、次を参照してください。 Office プライマリ相互運用機能アセンブリOffice ソリューション開発の概要(VSTO)します。For more information, see Office primary interop assemblies and Office solutions development overview (VSTO).

アプリケーションに複数の VSTO アドインがインストールされている場合、それぞれの VSTO アドインは異なるアプリケーション ドメインに読み込まれます。If multiple VSTO Add-ins are installed for an application, each VSTO Add-in is loaded in a different application domain. つまり、正しく動作しない 1 つの VSTO アドインが原因で他の VSTO アドインでエラーが発生することはありません。This means that one VSTO Add-in that behaves incorrectly cannot cause other VSTO Add-ins to fail. また、アプリケーションが閉じられた場合に、すべての VSTO アドイン アセンブリを確実にメモリからアンロードするためにも役立ちます。It also helps to ensure that when the application is closed, all the VSTO Add-in assemblies are unloaded from memory. アプリケーション ドメインの詳細については、次を参照してください。アプリケーション ドメインします。For more information about application domains, see Application domains.

Note

Visual Studio の Office Developer Tools を使用して作成する VSTO アドインは、エンド ユーザーがホストの Microsoft Office アプリケーションを起動したときにのみ使用されることを目的としています。VSTO Add-ins that you create by using the Office developer tools in Visual Studio are designed to be used only when the host Microsoft Office application is started by an end user. アプリケーションがプログラムで起動された場合 (オートメーション機能を使用して起動される場合など)、VSTO アドインが予期したとおりに動作しないことがあります。If the application is started programmatically (for example, by using Automation), the VSTO Add-in might not work as expected.

VSTO アドインのコンポーネントComponents of VSTO Add-ins

VSTO アドイン アセンブリは主要なコンポーネントですが、Microsoft Office アプリケーションが VSTO アドインを検出して読み込む動作において重要な役割を果たすコンポーネントが他にもいくつかあります。Although the VSTO Add-in assembly is the main component, there are several other components that play an important role in how Microsoft Office applications discover and load VSTO Add-ins.

レジストリ エントリRegistry entries

Microsoft Office アプリケーションは、一連のレジストリ エントリを検索して VSTO アドインを検出します。Microsoft Office applications discover VSTO Add-ins by looking for a set of registry entries. VSTO アドインで使用されるレジストリ エントリの完全な一覧を参照してください。 VSTO アドインのレジストリ エントリします。For a complete list of the registry entries used by VSTO Add-ins, see Registry entries for VSTO Add-ins.

ソリューションをビルドすると、Visual Studio によって開発用コンピューター上に必要なレジストリ エントリがすべて作成されるので、VSTO アドインをデバッグして実行することができます。When you build your solution, Visual Studio creates all of the required registry entries on the development computer so that you can debug and run your VSTO Add-in. 詳細については、次を参照してください。ビルドの Office ソリューションします。For more information, see Build Office solutions.

ClickOnce を使用してソリューションを展開する場合、発行プロセスによって自動的に生成されたセットアップ プログラムは、エンドユーザーのコンピューターにレジストリ キーを作成します。If you use ClickOnce to deploy your solution, the Setup program generated by the publish process automatically creates the registry keys on the end-user computer. 詳細については、次を参照してください。 ClickOnce を使用して Office ソリューションを配置します。For more information, see Deploy an Office solution by using ClickOnce.

配置マニフェストとアプリケーション マニフェストDeployment manifest and application manifest

VSTO アドインは配置マニフェストとアプリケーション マニフェストを使用して、最新バージョンの VSTO アドイン アセンブリを特定して読み込みます。VSTO Add-ins use deployment manifests and application manifests to identify and load the most current version of the VSTO Add-in assembly. 配置マニフェストは、最新のアプリケーション マニフェストを指します。The deployment manifest points to the current application manifest. アプリケーション マニフェストは、VSTO アドイン アセンブリを指し、アセンブリ内で実行するエントリ ポイント クラスを指定します。The application manifest points to the VSTO Add-in assembly, and specifies the entry point class to execute in the assembly. 詳細については、次を参照してください。 Office ソリューションでのアプリケーションと展開マニフェストします。For more information, see Application and deployment manifests in Office solutions.

Visual Studio Tools for Office ランタイムVisual Studio Tools for Office Runtime

Visual Studio での Office developer tools を使用して作成した VSTO アドインを実行するエンドユーザーのコンピューターがいる必要があります、Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtimeをインストールします。To run VSTO Add-ins that are created by using the Office developer tools in Visual Studio, end-user computers must have the Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime installed. ランタイムには、アンマネージド コンポーネントと一連のマネージド アセンブリが含まれています。The runtime includes unmanaged components and a set of managed assemblies. アンマネージ コンポーネントは、VSTO アドイン アセンブリを読み込みます。The unmanaged components load the VSTO Add-in assembly. マネージド アセンブリにより、VSTO アドイン コードがホスト アプリケーションを自動化して拡張するために使用するオブジェクト モデルが提供されます。The managed assemblies provide the object model that your VSTO Add-in code uses to automate and extend the host application.

詳細については、Visual Studio Tools for Office runtime の概要を参照してください。For more information, see Visual Studio Tools for Office runtime overview.

Microsoft Office アプリケーションで VSTO アドインの機能How VSTO Add-ins work with Microsoft Office applications

ユーザーが Microsoft Office アプリケーションを起動すると、アプリケーションは配置マニフェストとアプリケーション マニフェストを使用して、最新バージョンの VSTO アドイン アセンブリを特定して読み込みます。When a user starts a Microsoft Office application, the application uses the deployment manifest and the application manifest to locate and load the most current version of the VSTO Add-in assembly. これらの VSTO アドインの基本アーキテクチャを、次の図に示します。The following illustration shows the basic architecture of these VSTO Add-ins.

2007 office アドイン アーキテクチャ2007 Office add-in architecture

Note

.NET Framework 4.NET Framework 4 または .NET Framework 4.5.NET Framework 4.5を対象とする Office ソリューションでは、PIA を直接呼び出す代わりに、ソリューション アセンブリに埋め込まれた PIA 型情報を使用してホスト アプリケーションのオブジェクト モデルを呼び出します。In Office solutions that target the .NET Framework 4.NET Framework 4 or the .NET Framework 4.5.NET Framework 4.5, solutions call into the object model of the host application by using PIA type information that is embedded in the solution assembly, instead of calling into the PIA directly. 詳細については、Office ソリューションのデザインと作成を参照してください。For more information, see Design and create Office solutions.

読み込みプロセスLoading process

ユーザーがアプリケーションを起動すると、次のステップが実行されます。The following steps occur when a user starts an application:

  1. アプリケーションは、Visual Studio の Office Developer Tools を使用して作成された VSTO アドインを特定するエントリのレジストリをチェックします。The application checks the registry for entries that identify VSTO Add-ins that were created by using the Office developer tools in Visual Studio.

  2. アプリケーションは、これらのレジストリ エントリを検出すると、VSTOEE.dll を読み込みます。これにより、VSTOLoader.dll が読み込まれます。If the application finds these registry entries, the application loads VSTOEE.dll, which loads VSTOLoader.dll. これらは、Visual Studio 2010 Tools for Office Runtime のローダー コンポーネントであるアンマネージ DLL です。These are unmanaged DLLs that are the loader components for the Visual Studio 2010 Tools for Office Runtime. 詳細については、Visual Studio Tools for Office runtime の概要を参照してください。For more information, see Visual Studio Tools for Office runtime overview.

  3. VSTOLoader.dll読み込みます、.NET Framework.NET Frameworkのマネージ部分を起動し、Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtimeします。VSTOLoader.dll loads the .NET Framework.NET Framework and starts the managed portion of the Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime.

  4. Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime はマニフェストの更新をチェックして、最新のアプリケーション マニフェストと配置マニフェストをダウンロードします。The Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime checks for manifest updates, and downloads the most recent application and deployment manifests.

  5. Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime は、一連のセキュリティ チェックを実行します。The Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime performs a series of security checks. 詳細については、セキュリティで保護された Office ソリューションを参照してください。For more information, see Secure Office solutions.

  6. VSTO アドインを信頼して実行できる場合、 Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime は配置マニフェストとアプリケーション マニフェストを使用して、アセンブリの更新をチェックします。If the VSTO Add-in is trusted to run, the Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime uses the deployment manifest and application manifest to check for assembly updates. 利用できる新しいバージョンのアセンブリが存在する場合、ランタイムは、クライアント コンピューターの ClickOnceClickOnce キャッシュに新しいバージョンのアセンブリをダウンロードします。If a new version of the assembly is available, the runtime downloads the new version of the assembly to the ClickOnceClickOnce cache on the client computer. 詳細については、次を参照してください。 Office ソリューションを配置します。For more information, see Deploy an Office solution.

  7. Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime は、VSTO アドイン アセンブリの読み込み先となる新しいアプリケーション ドメインを作成します。The Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime creates a new application domain in which to load the VSTO Add-in assembly.

  8. Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime は、VSTO アドイン アセンブリをそのアプリケーション ドメインに読み込みます。The Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime loads the VSTO Add-in assembly into the application domain.

  9. Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime は、VSTO アドインの RequestComAddInAutomationService メソッドを呼び出します (このメソッドがオーバーライドされている場合)。The Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime calls the RequestComAddInAutomationService method in your VSTO Add-in, if you have overridden it.

    必要に応じて、このメソッドをオーバーライドして、VSTO アドイン内のオブジェクトを他の Microsoft Office ソリューションに公開できます。You can optionally override this method to expose an object in your VSTO Add-in to other Microsoft Office solutions. 詳細については、次を参照してください。他の Office ソリューションから VSTO アドイン内のコードを呼び出すします。For more information, see Call code in VSTO Add-ins from other Office solutions.

  10. Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime は、VSTO アドインの RequestService メソッドを呼び出します (このメソッドがオーバーライドされている場合)。The Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime calls the RequestService method in your VSTO Add-in, if you have overridden it.

    必要に応じて、このメソッドをオーバーライドして、機能拡張インターフェイスを実装するオブジェクトを返すことで Microsoft Office 機能を公開できます。You can optionally override this method to extend a Microsoft Office feature by returning an object that implements an extensibility interface. 詳細については、次を参照してください。機能拡張インターフェイスによる UI のカスタマイズ機能します。For more information, see Customize UI features by using extensibility interfaces.

    Note

    Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime は、ホスト アプリケーションでサポートされている機能拡張インターフェイスごとに、 RequestService メソッドを呼び出します。The Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime makes separate calls to the RequestService method for each extensibility interface that is supported by the host application. RequestService メソッドの最初の呼び出しは、通常、 ThisAddIn_Startup メソッド呼び出しの前に実行されますが、 RequestService メソッドが呼び出される時点や回数について、推測に基づいて VSTO アドインを作成してはいけません。Although the first call to the RequestService method usually happens before the call to the ThisAddIn_Startup method, your VSTO Add-in should not make any assumptions about when the RequestService method will be called, or how many times it will be called.

  11. Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime は VSTO アドインの ThisAddIn_Startup メソッドを呼び出します。The Visual Studio Tools for Office RuntimeVisual Studio Tools for Office runtime calls the ThisAddIn_Startup method in your VSTO Add-in. このメソッドは、 Startup イベントの既定のイベント ハンドラーです。This method is the default event handler for the Startup event. 詳細については、次を参照してください。 Office プロジェクト内のイベントします。For more information, see Events in Office projects.

関連項目See also