Visual Studio Tools for Office ランタイムの概要

Visual Studio の Microsoft Office 開発ツールを使用して作成したソリューションを実行するには、エンドユーザーのコンピューターに Visual Studio 2010 Tools for Office ランタイムがインストールされている必要があります。 詳細については、「方法: Visual Studio Tools for Office ランタイムの再頒布可能パッケージをインストールする」を参照してください。 Visual Studio 2010 Tools for Office ランタイムは、次の 2 つの主要コンポーネントで構成されています。

  • .NET Framework 用の Office 拡張機能。 これらのコンポーネントは、ソリューションと Microsoft Office アプリケーションの間の通信レイヤーとなるマネージド アセンブリです。 詳細については、「.NET Framework 用の Office 拡張機能について」を参照してください。

  • Office ソリューション ローダー。 このコンポーネントは、Office アプリケーションがランタイムおよびソリューションの読み込みに使用する一連のアンマネージ DLL です。 詳細については、「Office ソリューション ローダーについて」を参照してください。

    ランタイムをインストールする方法はいくつかあります。 ランタイムをインストールするときには、コンピューターの構成に応じて異なるランタイム コンポーネントがインストールされます。 詳細については、「Visual Studio Tools for Office ランタイムのインストール シナリオ」を参照してください。

.NET Framework の Office 拡張機能について

Visual Studio 2010 Tools for Office ランタイムには、.NET Framework 3.5、.NET Framework 4 以降用の Office 拡張機能が含まれています。 .NET Framework の各バージョンを対象とするソリューションでは、そのバージョンに適した拡張機能が使用されます。

これらの拡張機能は、ソリューションが Office アプリケーションの自動化および拡張に使用するアセンブリで構成されています。 Office プロジェクトを作成すると、Visual Studio によって、そのプロジェクト タイプとプロジェクトの対象 .NET Framework に使用する アセンブリの参照が自動的に追加されます。 Office 拡張機能のアセンブリの詳細については、「Visual Studio Tools for Office ランタイムのアセンブリ」を参照してください。

Office 拡張機能の設計の相違点

.NET Framework 3.5 用の Office 拡張機能で使用する型の大部分は、クラスです。 これらのクラスは、以前のバージョンの Visual Studio Tools for Office ランタイムに含まれていたクラスと同じです。 これに対して、.NET Framework 4 以降用の Office 拡張機能で使用する型の大部分は、インターフェイスです。 たとえば、.NET Framework 4 以降を対象とする場合、WorksheetDocument の型はクラスではなくインターフェイスです。

ほとんどの場合、ソリューションが .NET Framework 3.5 を対象とするかまたは .NET Framework 4 を対象とするかに関係なく、Office ソリューションで記述するコードは同じです。 ただし、一部の機能については、対象となる .NET Framework のバージョンが異なる場合に別のコードが必要になります。 詳しくは、「.NET Framework 4 以降への Office ソリューションの移行」を参照してください。

.NET Framework 4 以降用の Office 拡張機能に含まれるインターフェイス

.NET Framework 4 以降用の Office 拡張機能に含まれるインターフェイスの大部分は、ユーザー コードで実装されることを意図していません。 直接実装できるインターフェイスは、 Iという文字で始まる名前の付いたインターフェイスです。たとえば、 ISmartTagExtensionなどです。

I という文字で始まる名前が付いていないインターフェイスの場合は、Visual Studio 2010 Tools for Office ランタイムによって内部的に実装されます。また、これらのインターフェイスは、将来のリリースで変更される可能性があります。 これらのインターフェイスを実装するオブジェクトを作成するには、プロジェクトで Globals.Factory オブジェクトによって提供されるメソッドを使用します。 たとえば、SmartTag インターフェイスを実装するオブジェクトを取得するには、Globals.Factory.CreateSmartTag メソッドを使用します。 Globals.Factory の詳細については、「Office プロジェクト内のオブジェクトへのグローバル アクセス」を参照してください。

.NET Framework 4 以降を対象とするプロジェクトでの型の等価性と埋め込み型の有効化

.NET Framework 4 以降用の Office 拡張機能のオブジェクト モデルはインターフェイスに基づいているため、Visual Studio の Visual C# および Visual Basic の両方で、型の等価性の機能を使用して Visual Studio Tools for Office ランタイムから取得した型情報をソリューションに埋め込むことができます。 この機能によって、Office ソリューションおよび Visual Studio Tools for Office ランタイムが、それぞれ独立してバージョン管理できるようになります。 たとえば、ソリューションで Document インターフェイスを埋め込み型として使用し、ランタイムの次のバージョンによって Document インターフェイスにメンバーが追加される場合でも、そのソリューションは引き続きランタイムの次のバージョンで機能します。 ソリューションで Document インターフェイスを埋め込み型として使用しない場合、そのソリューションはランタイムの次のバージョンで機能しません。

既定では、.NET Framework 4 以降を対象とする Office プロジェクトを作成するときに、型の等価性の機能は有効になりません。 この機能を有効にするには、プロジェクト内の次のアセンブリ参照の 相互運用型の埋め込み プロパティを Trueに設定します。

  • Microsoft.Office.Tools.dll

  • Microsoft.Office.Tools.Common.dll

  • Microsoft.Office.Tools.Excel.dll

  • Microsoft.Office.Tools.Outlook.dll

  • Microsoft.Office.Tools.Word.dll

    この変更を加えると、プロジェクトをビルドするときに、プロジェクトが使用するすべてのランタイム型の型情報が、ソリューション アセンブリに埋め込まれます。 実行時には、参照されるアセンブリの型情報ではなく、この埋め込み型情報がソリューションで使用されます。

Office ソリューション ローダーについて

Visual Studio Tools for Office Runtime には、Office アプリケーションがランタイムおよび Office ソリューションの読み込みに使用する複数のアンマネージ DLL が含まれています。 これらの DLL を直接操作する必要が生じることはありませんが、その目的を把握しておくと、Office ソリューションのアーキテクチャについて理解を深めるうえで役に立ちます。

これらのコンポーネントが読み込み中にどのように使用されるかについては、「ドキュメント レベルのカスタマイズのアーキテクチャ」および「VSTO アドインのアーキテクチャ」をご覧ください。

vstoee.dll

ユーザーがドキュメント レベルのカスタマイズを開いたり VSTO アドインを起動したりすると、Office アプリケーションにより VSTOEE.dll が呼び出され、Visual Studio Tools for Office ランタイムの読み込みに必要なタスクが実行されます。

VSTOEE.dll によって、ソリューションおよびインストール済みの Office のバージョンに適合する Visual Studio Tools for Office ランタイムのバージョンが読み込まれます。 同じコンピューターに Visual Studio Tools for Office ランタイムの複数のバージョンをインストールできますが、VSTOEE.dll のインスタンスは一度に 1 つしかインストールされません。 この VSTOEE.dll は、コンピューターにインストールしたランタイムの最新バージョンに含まれているものです。 他のソリューションで使用できるさまざまなバージョンの Visual Studio Tools for Office ランタイムの詳細については、「さまざまなバージョンの Microsoft Office でソリューションを実行する」を参照してください。

VSTOLoader.dll

VSTO Enterprise Edition.dll が Visual Studio Tools for Office ランタイムの適切なバージョンを読み込んだ後VSTOLoader.dll はソリューション アセンブリの読み込みに必要なほとんどの作業を実行します。 VSTOLoader.dll により実行される処理は、次のとおりです。

  • ソリューション アセンブリごとにアプリケーション ドメインを作成します。

  • 一連のセキュリティ チェックによって、ソリューション アセンブリに実行のアクセス許可があることを確認します。

  • ソリューションに必要な .NET Framework 用のバージョンの Office 拡張機能を読み込みます。

    また、VSTOLoader.dll では、次のような VSTO アドインのみを対象とする処理も実行されます。

  • IDTExtensibility2 インターフェイスを実装します。 IDTExtensibility2 は、Microsoft Office アプリケーションのすべての VSTO アドインが実装する必要のある COM インターフェイスです。 このインターフェイスには、アプリケーションが VSTO アドインと通信するために呼び出すメソッドが定義されています。

  • IManagedAddin インターフェイスを実装します。 このインターフェイスは、Office アプリケーションで VSTO アドインの読み込みに使用されます。詳しくは、「IManagedAddin インターフェイス」を参照してください。

32 ビット バージョンおよび 64 ビット バージョンのランタイムについて

Visual Studio 2010 Tools for Office ランタイムには、64 ビットおよび 32 ビットの別個のバージョンがあります。 ランタイムのこれらのバージョンは、64 ビット エディションおよび 32 ビット エディションの Office でソリューションを実行するのに使用されます。 次の表は、Windows と Office のそれぞれの組み合わせで必要とされる、ランタイムのバージョンを示しています。

Windows のエディション Microsoft Office のエディション Visual Studio Tools for Office Runtime のバージョン番号
32 ビット 32 ビット 32 ビット
64 ビット 32 ビット 64 ビット
64 ビット 64 ビット 64 ビット

Office をインストールするときに、必要なバージョンの Visual Studio Tools for Office ランタイムが Office と共にインストールされます。 たとえば、64 ビット エディションの Office を 64 ビット バージョンの Windows にインストールすると、64 ビット バージョンの Visual Studio Tools for Office ランタイムもインストールされます。 Office での Visual Studio Tools for Office ランタイムのインストールに関する詳細については、「Visual Studio Tools for Office ランタイムのインストール シナリオ」を参照してください。

64 ビット バージョンの Office は、Visual Studio 2008 で 2007 Microsoft Office system 用のプロジェクト テンプレートを使用して作成された Office ソリューションも実行できます。 ただし、Visual Studio 2008 で Microsoft Office 2003 用のプロジェクト テンプレートを使用して作成された Office ソリューションや、Visual Studio 2005 を使用して作成された Office ソリューションは実行できません。 詳細については、「さまざまなバージョンの Microsoft Office でソリューションを実行する」を参照してください。

Visual Studio 2010 Tools for Office ランタイムの修復

ランタイムを修復する必要がある場合は、[コントロール パネル] の [プログラムと機能] または [プログラムの追加と削除] を開き、プログラムの一覧から [Microsoft Visual Studio 2010 Tools for Office Runtime] をクリックし、 [アンインストール]をクリックします。 実行されるセットアップ プログラムを使用して、ランタイムを修復できます。 [変更]をクリックした場合、ランタイムを修復するオプションは表示されません。