次の方法で共有


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 以降を対象とする場合、 Worksheet 型と Document 型はクラスではなくインターフェイスになります。

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

.NET Framework 4 以降の Office 拡張機能のインターフェイス

.NET Framework 4 以降の Office 拡張機能のほとんどのインターフェイスは、ユーザー コードによる実装を意図していません。 実装できる唯一のインターフェースは、I で始まる名前が付けられたものです、例えば

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

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

.NET Framework 4 以降の Office 拡張機能のオブジェクト モデルはインターフェイスに基づいているため、Visual C# と Visual Studio の 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 ランタイムには、Office アプリケーションがランタイムと Office ソリューションの読み込みに使用するアンマネージ DLL がいくつか含まれています。 これらの DLL を直接操作する必要はありませんが、これらの DLL の目的を知ることは、Office ソリューションのアーキテクチャをより深く理解するのに役立ちます。

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

VSTOEE.dll

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

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

VSTOLoader.dll

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

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

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

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

    VSTOLoader.dll では、VSTO アドインに固有のいくつかの処理も行います。

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

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

ランタイムの 32 ビットバージョンと 64 ビット バージョンを理解する

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

Windows のエディション Microsoft Office のエディション Visual Studio Tools for Office ランタイムの必須バージョン
32 ビット 32 ビット 32 ビット
64-bit 32 ビット 64-bit
64-bit 64-bit 64-bit

Office をインストールすると、必要なバージョンの Visual Studio Tools for Office ランタイムが Office と共にインストールされます。 たとえば、64 ビット 版の Windows に 64 ビット 版の Office をインストールすると、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 システムのプロジェクト テンプレートを使用して作成された 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 を選択し、[ アンインストール] をクリックします。 実行するセットアップ プログラムを使用すると、ランタイムを修復できます。 [ 変更] をクリックすると、ランタイムを修復するためのオプションは表示されません。