Windows インストーラを使用して Visual Studio 2005 Tools for Office Second Edition ソリューションを配置する (Part 1 of 2)

  

Darryn Lavery、Microsoft Corporation
Lubo Birov、Microsoft Corporation
McLean Schofield、Microsoft Corporation
Brian A. Randell、MCW Technologies, LLC (英語)

2007 年 3 月発行
2007 年 8 月更新
日本語版最終更新日 2007 年 12 月 5 日

適用対象:
   Microsoft Visual Studio 2008 Beta 2
   2007 Microsoft Office System
   Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System
   Microsoft Visual Studio 2005
   Microsoft Visual Studio 2005 Tools for the Microsoft Office System
   Microsoft Office 2003

OfficeVSTO2005SEWindowsInstallerV2.msi (英語) をダウンロードする

要約: Visual Studio 2005 のセットアップ プロジェクトを使用して Windows インストーラのパッケージを作成する Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System ソリューションを配置する方法について学習します。

目次

この記事について
Visual Studio Tools for Office ソリューションの配置の概要
Visual Studio Tools for Office メソッドの配置
Windows インストーラを使用してソリューションを配置する
セットアップ プロジェクトを Windows Vista 用に調整する
Visual Studio 2005 Tools for Office ソリューションの配置に関する既知の問題
製品コードとコンポーネント ID
まとめ
追加情報

この記事について

Microsoft Visual Studio Tools for the Microsoft Office System の次のエディションを使用して作成したソリューションの配置と、ステップがとてもよく似ています。

  • Microsoft Visual Studio Tools for the Microsoft Office system (バージョン 3.0)。これは、Microsoft Visual Studio 2008 Professional および Team System エディションの一部です。これらのステップは、このエディションの Microsoft Office 2003 のプロジェクトにのみ適用できます。2007 Microsoft Office system のプロジェクトでは、代わりに ClickOnce テクノロジを使用します。
  • Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System (Visual Studio 2005 Tools for Office Second Edition、または VSTO 2005 SE)。
  • Microsoft Visual Studio 2005 Tools for the Microsoft Office System (VSTO 2005)。

ここでは、特定のエディションを、それぞれ必要に応じて頭文字で記述しています。また、「Visual Studio Tools for Office」の名前を使用する場合は、両方のエディションが含まれています。

この記事には、Visual Studio Tools for Office の配置に関する、次の説明が記載されています。

  • Word 2003 の、ドキュメントベースのソリューションや、Office の 2003 および 2007 リリース用のアドインを含む、Visual Studio Tools for Office ソリューションを配置するのに必要な、主なステップの概要。
  • セットアップ パッケージに必須コンポーネントを追加する方法を含む、Visual Studio セットアップ プロジェクトを使用した、Visual Studio Tools for Office ソリューションの配置方法の概要。これは、必要になる機会が多く、かなりやりがいのあるタスクです。また、セキュリティの信頼をソリューションに付与するステップには、特に注意が必要です。
  • Windows インストーラを使用して Visual Studio Tools for Office のソリューションを配置する際に起きる、既知の問題のリスト。

ここに記載された Windows インストーラのダウンロードには、この記事全体で使用するサンプルファイルが含まれています。

この記事の第 2 部である「Windows インストーラを使用して Visual Studio 2005 Tools for Office Second Edition ソリューションを配置する: ウォークスルー (Part 2 of 2)」では、ウォークスルーを 2 つ紹介しています。1 つ目のウォークスルーでは、Microsoft Office Excel 2003 またはMicrosoft Office Word 2003 のドキュメントベースのソリューションに向けた Windows インストーラ パッケージを作成する、エンドツーエンドのステップを紹介します。2 つ目のウォークスルーでは、Microsoft Office Outlook 2003 または 2007 のアドインを拡張して、必須コンポーネントをインストールしたり、カスタマイズ アセンブリに信頼を付与する方法を説明します。

Visual Studio Tools for Office ソリューションの配置の概要

Visual Studio Tools for Office ソリューションは、さまざまな方法で配置できます。たとえば、発行ウィザードや Windows インストーラ パッケージを使用できます。どちらの場合も、同一の、一般的なプロセスに従う必要があります。

  • 配置モデルを決定する。
  • それぞれのユーザー コンピュータに必須コンポーネントをインストールする。
  • 配置するソリューションを準備する。
  • 配置場所にファイルをコピーする。
  • 必要なレジストリのエントリを作成する (アドイン ソリューションのみ)。
  • ソリューションのアセンブリに信頼を付与する。

ソリューションの配置についての詳細は、Visual Studio Tools for Office ドキュメントの「Office ソリューションの配置」を参照してください。

配置モデルを決定する

それぞれの配置モデルは、特定のシナリオに対して、異なる利点があります。たとえば、オフラインの有効性と容易なカスタマイズ アセンブリの更新に高い優先順位がある場合、このシナリオに最適の配置モデルがあります。詳細については、「配置モデル」を参照してください。

  • Excel と Word のドキュメント ソリューションでは、ソリューションをローカル ハード ディスクや Web サーバー、ネットワーク ファイル共有に配置するか、あるいはハイブリッド アプローチを使用するかを選択できます。ハイブリッド アプローチでは、ドキュメントをデスクトップ コンピュータに配置して、カスタマイズ アセンブリ (つまり、コードを含んだアセンブリ) をネットワークでアクセス可能な場所に置くことができます。
  • アドイン ソリューションでは、カスタマイズ アセンブリをローカル ハード ディスク上に格納するか、ネットワークでアクセス可能な場所に格納するかのどちらかを選択できます。

それぞれのユーザー コンピュータに必須コンポーネントをインストールする

Visual Studio Tools for Office ソリューションを実行するには、それぞれのユーザー コンピュータに次のソフトウェアが必須になります。

  • Microsoft .NET Framework version 2.0
  • ソリューションに適した Microsoft Office アプリケーション
    • VSTO 2005 のドキュメントベースのソリューションをサポートする Microsoft Office 2003 アプリケーション
    • VSTO 2005 SE アドインをサポートする Microsoft Office 2003 アプリケーション
    • VSTO 2005 SE アドインをサポートする 2007 Microsoft Office アプリケーション
  • 使用する Office のバージョンに合ったプライマリ相互運用機能アセンブリ
    プライマリ相互運用機能アセンブリをインストールするか、インストール中には [初めて実行するときにインストール] とマークしておく必要があります。
    Microsoft Office アプリケーションでは、セットアップ先のコンピュータに .NET Framework 1.1 以降がインストールされている場合のみ、プライマリ相互運用機能アセンブリをインストールします。
    Microsoft Office 2003 や Word などスタンドアロン製品の通常のインストールでは、製品を初めて使用するときにプライマリ相互運用機能アセンブリをインストールするように、アプリケーションを設定します。完全インストールでは、インストール処理の間にプライマリ相互運用機能アセンブリをインストールします。
    2007 Microsoft Office System では、コンピュータに .NET Framework がインストールされている場合、インストーラがプライマリ相互運用機能アセンブリを既定でインストールします。
    Office アプリケーションのインストール後にプライマリ相互運用機能アセンブリがないことに気付いた場合は、[コントロール パネル] の [プログラムの追加と削除] を使用して、プライマリ相互運用機能アセンブリを手動でインストールできます。ただし、この作業には Office インストールのメディアが必要になる場合があります。
    特定のコンピュータにプライマリ相互運用機能アセンブリがインストールされているかどうか不明な場合は、プライマリ相互運用機能アセンブリをソリューションの一部としてインストールするといいでしょう。Microsoft Office では、Microsoft Office インストールのメディアにアクセスする必要のない、プライマリ相互運用機能アセンブリのダウンロードおよび再頒布可能パッケージを提供しています。
  • VSTO 2005 SE ランタイム
    ランタイムの VSTO 2005 SE バージョンでは、VSTO 2005 SE で導入された新機能や、ソフトウェア アップデートのいくつかに対するサポートを提供します。このランタイムは、VSTO 2005 ソリューションと VSTO 2005 SE ソリューションの両方をサポートしています。
  • Visual Studio Tools for Office Language Pack (オプション)
    ソリューションを実行しているユーザーの中に、Windows の設定を英語以外にしているユーザーがいる場合は、言語パックをインストールします。言語パックをインストールしない場合、ソリューションは実行できますが、Visual Studio Tools for Office ランタイムのエラー メッセージや警告メッセージが英語で表示されます。
メモ:   VSTO 2005 SE と VSTO 2005 は同じ言語パックを使用します。
重要:   これらの必須コンポーネントをインストールするには、ユーザーには管理者権限が必要です。権限がない場合は、別の配置方法、たとえばグループ ポリシーやシステム管理ソフトウェア (SMS) などを考慮する必要があります。

詳細については、「方法: Office ソリューションを実行できるようにエンド ユーザーのコンピュータを準備する」を参照してください。

必須コンポーネントの詳細については、「追加情報」を参照してください。

配置するソリューションを準備する

配置するソリューションを準備するには、マニフェスト ファイルを正しい配置場所で更新します。ドキュメントベースのソリューションとアドイン ソリューションでは、マニフェスト ファイルの扱いが異なります。

Word と Excel のドキュメントベースのソリューション

VSTO 2005 の Excel と Word のドキュメントには、埋め込みのアプリケーション マニフェストが含まれています。このマニフェストには、カスタマイズ アセンブリへの参照が含まれています。埋め込みのアプリケーション マニフェストは、このマニフェストと同様に外部アプリケーション マニフェストを参照する、配置マニフェスト ファイルも参照できます。これにより、ソリューションの更新が容易になります。ドキュメントが読み込まれるたびに、VSTO 2005 SE ランタイムはマニフェスト ファイルを調べて、カスタマイズ アセンブリが現在のものかどうかを、マニフェストのバージョン番号を比較して判断します。バージョンが変わっている場合は、Visual Studio Tools for Office により埋め込みのアプリケーション マニフェストが、新しい外部アプリケーション マニフェストと置き換えられます。これにより、ソリューションが更新され、最新のカスタマイズ アセンブリが使用できるようになります。発行ウィザードは自動的にこれらのファイルを作成し、更新シナリオをサポートします。

一部のシナリオでは、配置マニフェストや外部アプリケーション マニフェスト ファイルに加えて、埋め込みのアプリケーション マニフェストも、最終的な配置場所を手動で編集したり、プログラム的に編集したりする必要があります。詳細については、「方法:ドキュメントレベルのカスタマイズの場所を変更する」を参照してください。

アドイン ソリューション

Outlook 2003 アドインと VSTO 2005 SE アドインにはアプリケーション マニフェストがありますが、場所はレジストリに格納されています。このアプリケーション マニフェストもカスタマイズ アセンブリと、更新シナリオのサポートに使用できるオプションの配置マニフェストを参照します。詳細については、「方法:アプリケーション レベルのアドインの場所を変更する」を参照してください。

配置場所にファイルをコピーする

ファイルは手動でコピーできます。また、発行ウィザードや Visual Studio のセットアップ プロジェクトを使用するプロセスの一部としてもコピーすることができます。

必要なレジストリのエントリを作成する (アドイン ソリューションのみ)

VSTO 2005 SE を使用して作成したアドインでは、各コンピュータにレジストリのエントリ セットが必要です。これらレジストリのエントリはアプリケーション マニフェストの場所を示し、アドインの追加情報を提供します。
レジストリのエントリは、すべてのアドインに必要です。これは、エントリを作成したアーキテクチャが Microsoft Visual Basic for Applications (VBA) でも、アンマネージ Visual C++ コードでも、あるいはマネージ コードと .NET Framework であっても、関係ありません。アドインをサポートする Office アプリケーションは、スタートアップでレジストリを調べて、使用可能なアドインを確認します。レジストリのエントリには、Office ホストが適切にアドインを読み込むのに必要な、別の情報も含まれています。

詳細については、「アプリケーション レベルのアドインの配置」を参照してください。

ソリューションのアセンブリに信頼を付与する

最後に、.NET Framework によってこれらのアセンブリが実行できるように、ソリューションのアセンブリに信頼を付与する必要があります。カスタマイズ アセンブリに FullTrust 許可を付与しなければなりません。さらに、適切な許可レベルを持つ、参照アセンブリやサテライト アセンブリを、すべて信頼する必要があります。信頼に使用する証拠は、アセンブリの場所や厳密な名前、証明書、あるいはこの種の証拠を組み合わせたもので構成されます。

Word と Excel のドキュメントベースのソリューション

Excel または Word の VSTO 2005 ドキュメントがローカル ハード ディスク以外の場所 (Web サーバーなど) で開かれている場合は、そのドキュメントに FullTrust 許可も付与する必要があります。証拠には、ドキュメントの場所を使用します。

メモ:   ソリューションの構築に VSTO 2005 を使用している場合は、Visual Studio がカスタマイズ アセンブリや他の参照アセンブリに適切な信頼を付与します。証拠には、ソリューションの構築場所を使用します。ただし、ソリューションをハード ディスクの別の場所へコピーしたり、ソリューションを公開したりする場合は、セキュリティの許可をコピーするアセンブリや公開するアセンブリに、明示的に付与しなければなりません。

詳細については、「Office ソリューションにおけるセキュリティ」を参照してください。

Visual Studio Tools for Office メソッドの配置

Visual Studio では、ソリューションの配置用に、2 つのメソッドを提供しています。

  • 発行ウィザード
    発行ウィザードを使用すると、Web サイトやネットワーク ファイル共有、ローカル コンピュータに Visual Studio Tools for Office ソリューションを配置できます。このウィザードは最初の配置のあいだに、自動的にソリューションのアプリケーション マニフェストと配置マニフェストを作成し、後続の配置で既存のマニフェストを更新します。
    発行ウィザードは、次の必須コンポーネントをユーザーがインストールしていることを想定してあります。
    • .NET Framework 2.0
    • VSTO 2005 SE ランタイム
    • Office アプリケーションのバージョンに合ったプライマリ相互運用機能アセンブリ
    ソリューションの配置が終了したら、各ユーザーがソリューションを実行できるように、信頼を付与する必要があります。詳細については、「Office ソリューションの実行に必要なセキュリティ条件」を参照してください。
    アドイン ソリューションの場合、発行ウィザードはアドインの実行に必要なレジストリのエントリを作成しません。
    アドインの配置に 発行ウィザードを使用する場合は、レジストリ (.reg) ファイルを使用するなどして、レジストリのエントリを手動で作成する必要があります。
    詳細については、「アプリケーション レベルのアドインの配置」を参照してください。
  • Visual Studio のセットアップ プロジェクト
    Visual Studio のセットアップ プロジェクトは、Windows インストーラ パッケージ (.msi ファイル) を作成してソリューションを配置するのに役立ちます。さらに、セットアップ プロジェクトは .NET Framework 2.0 などの必須コンポーネントを検出し、インストールする、Setup.exe ファイルを作成します。セットアップ プロジェクトは、発行ウィザードを補完するものとして使用できます。Visual Studio Tools for Office ソリューションは Web 共有に公開できます。また、セットアップ プロジェクトを使用して必須コンポーネントをインストールしたり、ソリューションにセキュリティの信頼を付与したりすることもできます。
    既定では、VSTO 2005 または VSTO 2005 SE アドインの作成時に、Visual Studio Tools for Office により自動的に、ソリューション用のセットアップ プロジェクトが作成されます。ただし、セットアップ プロジェクトは、必須コンポーネントを確認したり、必要に応じてインストールしたりするのに調整される必要があります (後で詳しく述べます)。
    詳細については、「Windows インストーラ配置」を参照してください。

Visual Studio Tools for Office に精通していない顧客に対して、Visual Studio Tools for Office ソリューションをコンピュータにインストールする簡単な方法を提供するときには、Visual Studio のセットアップ プロジェクトが理想的になります。

しかし、Visual Studio のセットアップ プロジェクトで現在サポートしていない、特定の要件がいくつかあります。この中で最も重要になるのは、VSTO 2005 SE ランタイムなどを必須コンポーネントにインストールすることに関する要件と、セキュリティの信頼をソリューションに付与することに関する要件です。ここでは、これらの点に焦点を当てています。

Windows インストーラを使用してソリューションを配置する

このセクションでは、ここに記載されているダウンロードに含まれる、サンプル ファイルが必要です。これらのファイルをまだインストールしていない場合は、すぐにインストールしてください。既定では、これらのファイルは次のディレクトリにインストールされます。

C:\Program Files\Microsoft Visual Studio 2005 Tools for Office SE Resources\VSTO2005SE Windows Installer Sample Version2\

この記事では、このディレクトリを {SamplesDir} と呼びます。

この記事の第 2 部である「Windows インストーラを使用して Visual Studio 2005 Tools for Office Second Edition ソリューションを配置する: ウォークスルー (Part 2 of 2)」では、ウォークスルーを 2 つ紹介しています。1 つ目のウォークスルーでは、Microsoft Office Excel 2003 またはMicrosoft Office Word 2003 のドキュメントベースのソリューションに向けた Windows インストーラ パッケージを作成する、エンドツーエンドのステップを紹介します。2 つ目のウォークスルーでは、Microsoft Office Outlook 2003 または 2007 のアドインを拡張して、必須コンポーネントをインストールしたり、カスタマイズ アセンブリに信頼を付与したりする方法を説明します。

前提条件

配置するプロジェクトについて、ここでは次のことが前提になっています。

  • カスタマイズ アセンブリは 1 つのみで、このソリューションで配置される別の参照アセンブリやサテライト アセンブリはありません。
  • 配置先はローカルのファイル フォルダであり、Web サーバーやネットワーク ファイル共有など、別の場所ではありません。
  • ソリューションにはオプションの配置マニフェストを使用しません。

Windows インストーラ パッケージを作成する

大まかな手順は、次のとおりです。

  1. Visual Studio Tools for Office ソリューションを作成して配置します。
    アドイン プロジェクトにより、ソリューションにセットアップ プロジェクトが自動的に含まれます。
    プロジェクトが Excel または Word のドキュメント ソリューションの場合。
    1. Visual Studio のセットアップ プロジェクトをソリューションに追加します。
    2. Visual Studio Tools for Office ソリューションのファイルをセットアップ プロジェクトに追加します。
  2. Setup.exe で調べたり、インストールする必要のある必須コンポーネントを示します。
    最も注目すべき必須コンポーネントは、.NET Framework 2.0 と VSTO 2005 SE ランタイムです。VSTO 2005 SE プロジェクトのテンプレートで作成されたセットアップ プロジェクトは、自動的に .NET Framework 2.0 を調べますが、VSTO 2005 SE ランタイムは調べません。
  3. カスタム動作を追加して、カスタマイズ アセンブリに信頼を付与します。
  4. Excel や Word のドキュメントがカスタマイズを読みこめるように、あるいは、アドイン ホストがアドイン カスタマイズを見つけて読み込めるように、アプリケーション マニフェスト内の、カスタマイズ アセンブリの場所を指定します。
  5. Windows インストーラ パッケージに起動条件を追加して、インストーラが必須コンポーネントを調べられるようにします。
    Setup.exe をダブルクリックして Windows インストーラを起動できます。
    .msi ファイルをダブルクリックすると、ソリューションをインストールすることもできます。このモードでセットアップ ルーチンが動作している場合、必須コンポーネントはインストールされません。ただし、.msi ファイルに起動条件を追加して、代わりに Setup.exe を使用するようユーザーに警告することはできます。
    重要:   Setup.exe を使用してソリューションをインストールする場所の安全性を確保して、カスタム動作アセンブリや関連付けられた保存済みのインストール状態、関連するセットアップ ファイルなどが勝手に書き換えられないようにする必要があります。

セットアップ プロジェクトをドキュメントベースのソリューションに追加する

セットアップ プロジェクトを既存の VSTO 2005 ドキュメント ソリューションに追加するには、[ソリューション エクスプローラ] でソリューションを右クリックして、新しいプロジェクトを追加します。[新しいプロジェクトの追加] ダイアログ ボックスが表示されたら、[その他のプロジェクトの種類] を選択し、[セットアップと配置] を選択します。

図 1. セットアップ プロジェクトを作成する

Aa537173.bb332051_fig1(ja-jp,office.11).gif


セットアップ プロジェクトをソリューションに追加した後は、ファイル システム エディタ (図 2) を使用して、VSTO 2005 ドキュメント プロジェクト ファイルを追加できます。

図 2. インストール ファイルを追加する

Aa537173.bb332051_fig2(ja-jp,office.11).gif


必須コンポーネントを検出およびインストールする

Visual Studio のセットアップ プロジェクトで作成した Setup.exe ファイルをダブルクリックしてセットアップを実行したときには、Windows インストーラがアプリケーションに必要な必須コンポーネントの一覧を調べ、必要に応じてソフトウェアをインストールします。開発者のあいだでは、よくこのプロセスを「ブートストラップする」といいます。ここでは、Setup.exe の代わりに「ブートストラップ」という言葉を頻繁に使用することになります。 必須コンポーネントのインストールが終了すると、実際にアプリケーションのインストールを行う Windows インストーラ パッケージが処理されます。

必須コンポーネント

セットアップの作成者は必須コンポーネントを決定することができます。また、セットアップのユーザーが必須コンポーネントを入手する方法も、Web からダウンロードする、Windows インストーラに含まれているものを使用する、ネットワーク ファイル共有などの事前に決められた場所からダウンロードする、などに決定することもできます。これらは [必須コンポーネント] ダイアログ ボックスで制御できます。このダイアログ ボックスはセットアップ プロジェクトの [っプロジェクト プロパティ] ダイアログ ボックス内にあります。

図 3. インストールする必須コンポーネントを選択する

Aa537173.bb332051_fig3(ja-jp,office.11).gif


必須コンポーネントのパッケージ

前述したように、Visual Studio Tools for Office ソリューションには .NET Framework 2.0 と VSTO 2005 SE ランタイム、そして Office のバージョンに合ったプライマリ相互運用機能アセンブリが必要です。既定では、必須コンポーネントとして追加できるのは .NET Framework 2.0 パッケージのみです。しかし、[必須コンポーネント] ダイアログ ボックスは拡張が可能で、ユーザーが提供する必須コンポーネント パッケージを含むことができます。Visual Studio では、使用可能な必須コンポーネント パッケージがリストされた特別なディレクトリを処理して、このダイアログ ボックスを設定します。各パッケージには、固有のフォルダがディレクトリ内にあります。詳細については、「Use the Visual Studio 2005 Bootstrapper to Kick-Start Your Installation」(英語) を参照してください。

Visual Studio 2005 Tools for Office の場合、必須コンポーネント パッケージを示す既定のディレクトリは、次の場所になります。

C:\Program Files\Microsoft.NET\SDK\v2.0\BootStrapper\Packages\

Microsoft Visual Studio 2005 Professional、Team Suite、あるいはロールベースの Team Edition では、ディレクトリは次の場所になります。

C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages

ヒント:   よくわからない場合は、このレジストリ キーの値: \HKLM\SOFTWARE\Microsoft\.NETFramework\sdkInstallRootv2.0 に \bootstrapper\packages を追加すると、Visual Studio 2005 の場所を判別できます。

Microsoft Visual Studio 2008 Beta 2 では、ディレクトリは次の場所になります。

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\

ヒント:   よくわからない場合は、このレジストリ キーの値: \HKLM\SOFTWARE\Software\Microsoft\GenericBoostrapper\3.5\Path に Packages を追加すると、Visual Studio 2008 Beta 2 の場所を判別できます。

それぞれのパッケージ フォルダは大量のファイルで構成されています。これらのファイルには、再頒布可能パッケージ自体やパッケージを説明する構成ファイル、インストール時にパッケージを調べるオプションの実行可能ファイルが含まれています。

パッケージのインストール動作を説明する構成ファイルは、複数あります。最初の構成ファイルである product.xml は、次の動作を説明します。

  • コンピュータにパッケージが既にインストールされているかどうかを検出する方法。通常は、レジストリ設定または製品コードを検索して検出するか、場合によってはカスタムの実行可能ファイルを使用します。製品コードは、特定の製品を一意的に識別する GUID です。
  • パッケージのインストール方法。
  • この特定のパッケージが依存しているパッケージ。たとえば、VSTO 2005 SE ランタイムを使用するには、.NET Framework 2.0 をインストールする必要があります。対象のコンピュータにこのパッケージがインストールされていない場合は、ユーザーに代わって Setup.exe がこれをインストールします。

2 つ目の構成ファイル、package.xml には、パッケージがインストールできないときに表示されるエラー メッセージなどの、パッケージに関する言語別の情報が含まれています。サポートしている各言語には、EN などのサブフォルダがあります。サブフォルダには package.xml の言語別バージョンと、Microsoft Software License Terms などの別ファイルが含まれています。

表 1. では、ここでのサンプルに含まれる VSTO 2005 SE の必須コンポーネント用の、サンプルの構成ファイルを示しています。

表 1. ここで記載されているブートストラップ パッケージの概要

ブートストラップ パッケージ 依存するパッケージ その他の条件
VSTO 2005 SE ランタイム.NET Framework 2.0?
Visual Studio Tools for Office Language PackVSTO 2005 SE ランタイム?
2003 リリース Office プライマリ相互運用機能アセンブリの再頒布可能パッケージ.NET Framework 2.0Office 2003 をインストールする場合に、すべてのプライマリ相互運用機能アセンブリをインストールする。
2007 リリース Office プライマリ相互運用機能アセンブリの再頒布可能パッケージ.NET Framework 2.0Office 2007 リリースをインストールする場合に、すべてのプライマリ相互運用機能アセンブリをインストールする。

ブートストラップ パッケージの詳細

ブートストラップには、次のパッケージが含まれています。

  • VSTO 2005 SE ランタイム (vstor.exe)
    VSTO 2005 SE ランタイム用の product.xml ファイルでは、.NET Framework 2.0 の依存関係の確認を行います。ランタイムは .NET Framework 2.0 をインストールした後にのみ、インストールされます。
  • Visual Studio Tools for Office Language Pack
    Visual Studio Tools for Office Language Pack は VSTO 2005 または VSTO 2005 SE ランタイムに依存いるため、ランタイムのうち 1 つを対象のコンピュータにインストールするまで、インストールされません。
  • 2003 リリースおよび 2007 リリース Office プライマリ相互運用機能アセンブリの再頒布可能パッケージ
    これらの再頒布可能パッケージは、ダウンロード可能な Windows インストーラ ファイルです。このファイルにより、Office プライマリ相互運用機能アセンブリを、Office のインストール用メディアを使用しなくてもインストールできます。このパッケージは、.NET Framework 1.1 以降と Microsoft Office がインストールされている場合にのみ、インストールされます。インストール中に、パッケージは、そのバージョンの Office プライマリ相互運用機能アセンブリをインストールします。
    メモ:   コンピュータに Outlook 2003 スタンドアロン製品のみがインストールされている場合、パッケージは、スマート タグのプライマリ相互運用機能アセンブリをインストールしません。
    ここでの目的は、.NET Framework 2.0 を依存関係として識別することです。したがって、プライマリ相互運用機能アセンブリの再頒布可能パッケージのどちらが含まれる場合でも、Setup.exe は .NET Framework 2.0 を調べて、必要に応じてこれをインストールします。
    product.xml ファイルには、単一の必須コンポーネントのチェックが含まれています。必須コンポーネントのチェックは、プライマリ相互運用機能アセンブリに適したバージョンの Office が、そのコンピュータにインストールされているかどうかを調べます。ブートストラップのインストール チェックは、有効なバージョンの Office を見つけられなかった場合に、プライマリ相互運用機能アセンブリのインストールを省略します。この Office のチェックには、ここで記載されているサンプルに付属の、Office コンポーネント チェック (ComponentCheck.cpp) が必要です。
    ヒント:   2003 または 2007 リリースの Office があるコンピュータにインストールされた Office 2003 ソリューションを配置する場合は、両方の再配布可能なパッケージを含めることができます。

Visual Studio Tools for Office Packages をブートストラップに追加する

次に示す指示は、上記でリストしたパッケージをブートストラップ パッケージのディレクトリに追加する方法を説明しています。これらの変更は 1 回だけ必要です。また、開発用コンピュータにのみ必要です。

このタスクは、ここに記載された Windows インストーラのダウンロードで使用できるファイルの使用法を示しています。ファイルを使用するには、ファイルの準備を整えてから、これをブートストラップ パッケージのディレクトリにコピーします。

ランタイムを準備する

VSTO 2005 SE ランタイムのブートストラップ パッケージを準備するには

  1. Microsoft ダウンロード センターから、Microsoft Visual Studio 2005 Tools for Office Second Edition Runtime (build 8.0.50272.891) (x86) をダウンロードしてください。
  2. vstor.exe を {SamplesDir}\packages\VSTOSERuntime ディレクトリにコピーします。

Visual Studio Tools for Office Language Pack のブートストラップ パッケージを準備する

ソリューションを実行するユーザーの中に、Windows の設定を英語以外にしているユーザーがいる場合は、Visual Studio Tools for Office Language Pack が必要です。これがないと、ランタイムのメッセージを Windows と同じ言語で表示できません。

Visual Studio Tools for Office Language Pack を準備するには

  1. Microsoft ダウンロード センターから、Microsoft Visual Studio 2005 Tools for the Microsoft Office System (VSTO2005) 再頒布可能パッケージ Language Package をダウンロードしてください。
  2. vstolp20.exe を {SamplesDir}\packages\VSTOLP ディレクトリにコピーします。

Office コンポーネント チェックを準備する

プライマリ相互運用機能アセンブリの再頒布可能パッケージ用の、Office コンポーネント チェッカーのサンプルをコンパイルします。

重要:   VSTO 2005 と VSTO 2005 SE を併用している場合は、.NET Framework 2.0 ソフトウェア開発キット (SDK) と Windows SDK を両方ともインストールしていることを確認してください。
メモ:   既定では、Visual Studio Tools for Office は .NET Framework 2.0 SDK をインストールしません。これは、ダウンロードできますが、Visual Studio Tools for Office で Add or Remove Programs コマンドを使用して、インストール メデイアからインストールすることもできます。また、Microsoft Download Center から、Microsoft Windows Software Development Kit for Windows Vista and .NET Framework 3.0 Runtime Components のコピーをダウンロードする必要があります。Microsoft ダウンロード センターでは、Microsoft .NET Framework 2.0 SDK 日本語版 (x86) のコピーもダウンロードできます。
メモ:   Visual C++ がインストールされているバージョンの Visual Studio を使用している場合は、これらをダウンロードする必要はありません。

Office コンポーネント チェックを準備するには

  1. このチェックをコンパイルするのに必要な、コマンド プロンプト ウィンドウを開きます。
    Visual Studio 2005 Professional、Team Suite、またはロールベースの Team Edition の 1 つを使用している場合は [スタート] をクリックして、[すべてのプログラム]、[Microsoft Visual Studio 2005]、[Visual Studio Tools] の順にポイントし、[Visual Studio 2005 コマンドプロンプト] をクリックして、[Visual Studio 2005 コマンドプロンプト] ウィンドウを開きます。
    Visual Studio 2005 Tools for Office を使用している場合は [スタート] をクリックして、[すべてのプログラム] から [Microsoft Windows SDK] をポイントし、[CMD シェル] をクリックして CMD シェルを実行します。
    Visual Studio 2008 Beta 2 を使用している場合は [スタート] をクリックして、[すべてのプログラム]、[Microsoft Visual Studio 2008 Beta 2]、[Visual Studio Tools] の順にポイントし、[Visual Studio 2008 Beta 2 コマンド プロンプト] をクリックして、[Visual Studio 2008 Beta 2 コマンド プロンプト] ウィンドウを開きます。
  2. コマンド プロンプトで、ディレクトリを {SamplesDir}\projects\Checks に変更します。
    ヒント:   既定では、SamplesDir ディレクトリは C:\Program Files\Microsoft Visual Studio 2005 Tools for Office SE Resources\VSTO2005SE Windows Installer Sample Version2\ です。
  3. 次のコマンドを入力して、コンポーネント チェッカーをコンパイルします。
  4. コマンド プロンプト ウィンドウを閉じます。
  5. Windows エクスプローラを使用して、実行可能ファイル ComponentCheck.exe を {SamplesDir}\packages\Office2003PIA and {SamplesDir}\packages\Office2007PIA にコピーします。

Office 2003 リリースの準備をする

ソリューションが VSTO 2005 の Excel または Word ドキュメント ソリューションの場合は、Office 2003 用のプライマリ相互運用機能アセンブリを、対応するブートストラップ パッケージに含める必要があります。

プライマリ相互運用機能アセンブリのブートストラップ パッケージを準備するには

  1. Microsoft Download Center から、Office 2003 Update: Redistributable Primary Interop Assemblies (英語) をダウンロードします。
  2. プライマリ相互運用機能アセンブリのインストーラを実行します。
  3. プライマリ相互運用アセンブリをインストーラの一部としてパッケージする権利を与える、マイクロソフト ソフトウェア ライセンス条項に同意します。
  4. Windows エクスプローラで、インストーラがファイルを展開するフォルダを開きます。
  5. O2003PIA.msi を {SamplesDir}\packages\Office2003PIA ディレクトリにコピーします。
    メモ:   再頒布可能パッケージは直接ダウンロードできないので、常に Windows インストーラに含めておく必要があります。必須コンポーネントのインストール場所を Web に設定している場合は、セットアップ プロジェクトを構築する際にはこの特定のパッケージを必ず含めなければならない、といった内容の、次のような警告が表示されます。

    警告: Microsoft Office 2003 Primary Interop Assemblies に対して HomeSite 属性が指定されていませんでした。そのため、パッケージは同じ場所にブートストラップとして発行されます。

Office 2007 リリースの準備をする

ソリューション (VSTO 2005 の Excel と Word のドキュメント ソリューションを含む) を Office 2007 で実行する場合は、Office 2007 用のプライマリ相互運用機能アセンブリを、対応するブートストラップ パッケージに含める必要があります。

プライマリ相互運用機能アセンブリのブートストラップ パッケージを準備するには

  1. Microsoft Download Center から、2007 Microsoft Office System Update: Redistributable Primary Interop Assemblies (英語) をダウンロードします。
  2. プライマリ相互運用機能アセンブリのインストーラを実行します。
  3. プライマリ相互運用アセンブリをインストーラの一部としてパッケージする権利を与える、マイクロソフト ソフトウェア ライセンス条項に同意します。
  4. Windows エクスプローラで、インストーラがファイルを展開するフォルダを開きます。
  5. O2007PIA.msi を {SamplesDir}\packages\Office2007PIA ディレクトリにコピーします。
    メモ:   再頒布可能パッケージは直接ダウンロードできないので、常に Windows インストーラに含めておく必要があります。必須コンポーネントのインストール場所を Web に設定している場合は、セットアップ プロジェクトを構築する際にはこの特定のパッケージを必ず含めなければならない、といった内容の、次のような警告が表示されます。 警告: 2007 Microsoft Office Primary Interop Assemblies に対して HomeSite 属性が指定されていませんでした。そのため、パッケージは同じ場所にブートストラップとして発行されます。

パッケージをブートストラップのディレクトリにコピーします。

これで必須コンポーネントの準備ができました。これらの必須コンポーネントをブートストラップ パッケージのディレクトリにコピーしてください。

パッケージをブートストラップにコピーするには

  1. ブートストラップ パッケージのディレクトリの場所を決定します。
    Visual Studio 2005 Tools for Office では、次の場所が既定のディレクトリになっています。
    C:\Program Files\Microsoft.NET\SDK\v2.0\BootStrapper\Packages\
    Visual Studio 2005 Professional、Team Suite、あるいはロールベースの Team Edition の 1 つでは、次の場所が既定のディレクトリになります。
    C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages
    ヒント:   よくわからない場合は、このレジストリ キーの値: \HKLM\SOFTWARE\Microsoft\.NETFramework\sdkInstallRootv2.0 に \bootstrapper\packages を追加すると判別できます。
    Visual Studio 2008 Beta 2 では、ディレクトリは次の場所になります。
    C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages
    ヒント:   よくわからない場合は、このレジストリ キーの値: \HKLM\SOFTWARE\Software\Microsoft\GenericBoostrapper\3.5\Path に Packages を追加すると、Visual Studio 2008 Beta 2 の場所を判別できます。
  2. ディレクトリ {SamplesDir}\packages の内容をブートストラップのディレクトリにコピーします。

カスタマイズ アセンブリに信頼を付与する

Visual Studio Tools for Office ランタイムでは、FullTrust 許可がなければカスタマイズ アセンブリを実行できません。さらに、適切な許可レベルを持つアプリケーションによって配置された参照アセンブリやサテライト アセンブリを、すべて信頼する必要があります。さらに、ユーザーのローカル ハードディスク以外の場所にドキュメントを配置する場合は、ドキュメントに FullTrust 許可を付与する必要があります。詳細については、「Office ソリューションにおけるセキュリティ」を参照してください。

ソリューションの信頼に使用する証拠の種類を考慮するときには、場所をベースにした証拠だけに依存しないようにします。その代わりに、場所に基づいた証拠と厳密な名前の組み合わせや、デジタル証明書との組み合わせ、これらの両方との組み合わせなどについて、考えてください。

Visual Studio の セットアップ プロジェクトでは、カスタム動作を追加してセキュリティを付与することができます。カスタム動作は、ユーザーがインストールの最後にコードを実行して、Windows インストーラでは提供されない動作を実行できるようにする、Windows インストーラの機能です。カスタム動作は、マネージ コードで Installer クラスから派生したクラスを作成し、必要に応じて Install メソッド、Uninstall メソッド、Commit メソッド、Rollback メソッドを適切にオーバーライドして実装します。

この記事には、信頼を付与するのに、サンプルの Microsoft Visual C# カスタム動作 (SetSecurity) が付属しています。このサンプルでは証拠として、インストールしたアセンブリのフォルダの場所と、厳密な名前を使用しています。サンプルのカスタム動作では、主なカスタマイズ アセンブリを 1 つのみとし、ソリューション全体をローカル ハード ディスクに配置するものとしています。

このカスタム動作は、Windows インストーラの 3 つのクラス メソッド、InstallRollback、および Uninstall をオーバーライドします。

  • インストール中に、セキュリティ ポリシーが設定されます。ロールバックおよびアンインストール中には、セキュリティ ポリシーの変更が削除されます。Install メソッドに必要なパラメータの一覧を、表 2 に示します。
  • UninstallRollback メソッドに必要なパラメータは、コード グループの名前 (solutionCodeGroupName) のみです。起動の途中で、このメソッドは指定されたコード グループを削除します。同名の、別のコード グループを削除しないように、コード グループの名前は必ず一意のものにします。
  • Commit メソッドにパラメータは必要ありません。基本クラスで提供される既定の実行が使用されます。

表 2. セキュリティのカスタム動作に使用する Install メソッドのパラメータ

パラメータ 説明
assemblyName 主なカスタマイズ アセンブリの名前。たとえば ExcelApplication.dll。
targetDir アセンブリをインストールする場所。インストール時に Windows インストーラから定義されるインストール マクロ [TARGETDIR]\ で必要十分。
solutionCodeGroupName Visual Studio Tools for Office アプリケーション用のセキュリティ コード グループの名前。一意の名前が必要。適切な名前の形式は「所属する企業名.ソリューション名.GUID」。
Visual Studio Tools for Office ソリューション用のインストール フォルダでは、このコード グループの許可は Nothing
solutionCodeGroupDescription ソリューションのコード グループ名の説明。
assemblyCodeGroupName アセンブリのコード グループ名。カスタム動作はこのコード グループに、アセンブリの厳密な名前を証拠として使用して、完全な信頼を付与する。
assemblyCodeGroupDescription アセンブリのコード グループ名の説明。
allUsers ポリシーをマシン レベル (値 = "1") とユーザー レベル (値 = "") のどちらで作成するかを指定する値。インストール時に Windows インストーラから定義されるインストール マクロ [ALLUSERS] を使用できる。

信頼を付与するには、カスタム動作が 2 つのコード グループを新しく作成します。カスタム動作はインストール フォルダの場所を証拠に使用して、1 つ目のコード グループ、Solution Code を作成し、許可を Nothing に設定します。Solution Code グループの名前は一意である必要があります。これは、ユーザーがソリューションを削除またはロールバックした場合に、そのコード グループをサンプルのカスタム動作が削除するためです。確実に一意な名前にするには、所属する企業名とソリューション名、GUID の組み合わせを使用するといいでしょう。

2 つ目のコード グループ、Assembly Code は、Solution Code グループの子です。カスタム動作はこのコード グループに、アセンブリの厳密な名前を証拠として使用して、完全な信頼を付与する。カスタム動作では 2 つのコード グループを設定して、共通言語ランタイムがカスタマイズ アセンブリを、アセンブリの場所と厳密な名前によって確実に信頼するようにします。

ヒント:   信頼は、厳密な名前の特定のバージョンに付与されます。あらゆるバージョンに信頼を付与するには、アセンブリのコード グループの作成に使用する属性のパラメータの文字列にフラグ -noversion を追加します。

セキュリティ権限は、ユーザー レベル、マシン レベル、またはエンタープライズ レベルで付与できます。サンプルのカスタム動作でサポートしているパラメータでは、ユーザー レベルとマシン レベルのどちらにポリシーを変更するかを選択できます。このパラメータでは、エンタープライズ ポリシーはサポートしていません。このレベルにはエンタープライズ管理者権限が必要なためです。実際には、このパラメータに [ALLUSERS] インストール マクロを渡すことができます。この値は、ソリューションをインストールしたユーザーだけがインストールしたソリューションを使用できるのか、それともすべてのユーザーが使用できるのかを決定します。

すべてのユーザー向けにインストールを行う場合は、マシン ポリシーを使用します。そうでない場合は、ユーザー ポリシーを使用します。ただし、セキュリティをマシン レベルに設定すると、ソリューションをインストールするユーザーに管理者アクセスを要求することになります。これは、必須コンポーネントをインストールする場合にも要求されます。ユーザー レベルのポリシーを更新するときに、カスタム動作は Solution Code グループを、ルートのコード グループ All_Code の子として追加します。マシン レベルのポリシーを更新するときに、カスタム動作は Solution Code グループを、コード グループ My_Computer_Zone の子として追加します。

インストール プロセスのあいだにコード グループが見つからない場合は、例外がスローされます。

サンプルのカスタム動作では、ソリューションをローカルのファイル フォルダに配置するときの、セキュリティ ポリシーの更新を示しています。ソリューションを共有の場所に配置するときの考慮事項については、「方法:共有の場所にあるドキュメントおよびブックにアクセス許可を与える」を参照してください。

さらに、このカスタム動作では、主なカスタマイズ アセンブリに向けたセキュリティ ポリシーの変更も示しています。ソリューションに他の参照 DLL やサテライト DLL がある場合は、アセンブリのコード グループを適切なレベルの許可で作成し、追加する必要があります。

アプリケーション マニフェスト内のカスタマイズ アセンブリの場所を更新する

アプリケーション マニフェストを更新する手順は、Excel または Word のドキュメントベースのソリューションを配置するのか、アドインのソリューションを配置するのかによって異なります。

Word および Excel ドキュメントのソリューション

Excel と Word の VSTO 2005 ソリューションには、ドキュメントのカスタマイズ アセンブリの場所と、その配置マニフェスト(オプション) を格納した、埋め込みのアプリケーション マニフェストがあります。ユーザー制御のインストール場所に Excel または Word のソリューションを配置する場合、埋め込みのアプリケーション マニフェストを編集して、カスタマイズ アセンブリの場所を更新する必要がある場合もあります。オプションの配置マニフェストや外部アプリケーション マニフェストを含める場合は、これらのマニフェスト ファイルを編集して、最終的なインストール場所を明らかにする必要があるかもしれません。

Excel または Word のソリューションを構築するとき (たとえば F5 キーを押すと)、構築処理により、アセンブリの相対パスをポイントするように、ブックに埋め込まれたアプリケーション マニフェストが編集されます。したがって、セットアップ プロジェクトに構築処理の結果を追加するときは、埋め込みのアプリケーション マニフェストを変更する必要がない場合もあります。

インストールの後、ブックまたはドキュメントとアセンブリを同じフォルダに残しておく場合は、埋め込まれたアプリケーション マニフェストを変更する必要はありません。しかし、インストール後にユーザーがブックを別のフォルダに移動できるようにする場合は、アプリケーション マニフェストを編集して、アセンブリの完全なパスをポイントする必要があります。これは、Excel や Word テンプレートのプロジェクトで特に重要です。テンプレートから作成されるブックやドキュメントは、通常、テンプレートの場所とは別の場所にあるからです。

ここでは、オプションの配置マニフェストを配置しないと仮定しています。そのため、編集が必要なのは、埋め込みのアプリケーション マニフェストだけです。Visual Studio Tools for Office の ServerDocument オブジェクトを使用すると、Visual C# や Microsoft Visual Basic 2005 で埋め込みのアプリケーション マニフェストをプログラム的に編集することができます。詳細については、「方法:アプリケーション マニフェスト アセンブリのパスをプログラムで更新する」を参照してください。

この記事に含まれているサンプルは、Visual C# を使用した、ドキュメントのカスタマイズ アセンブリの場所を更新するカスタム動作です。詳細については、プロジェクト フォルダ内の UpdateManifest プロジェクトを参照してください。

このカスタム動作は、Installer クラスInstall メソッドだけをオーバーライドします。これは、ソリューションを削除したり、ロールバックしたりするとドキュメントが削除されるためです。アプリケーション マニフェストを編集する必要はありません。表 3 に、カスタム動作の Install メソッドに使用するパラメータを示します。

この記事の第 2 部である「Windows インストーラを使用して Visual Studio 2005 Tools for Office Second Edition ソリューションを配置する: ウォークスルー (Part 2 of 2)」では、カスタム動作を含めて、これをセットアップ プロジェクトから呼び出す方法について、詳しく説明しています。

表 3. UpdateManifest カスタム動作に使用するパラメータ

パラメータ 説明
targetDir アセンブリをインストールする場所。インストール マクロ [TARGETDIR]\ で必要十分。
documentName 配置するドキュメントの名前。たとえば ExcelApplication.doc。
assemblyName アセンブリの名前。たとえば ExcelApplication.dll。

アドイン ソリューション

アドイン プロジェクト用のアプリケーション マニフェストはディスクにインストールされます。ドキュメントには埋め込まれません。VSTO 2005 SE ランタイムがマニフェストの場所を見つけるには、この場所をレジストリに指定しておく必要があります。アドインのセットアップ プロジェクトを作成するときには、ユーザーの代わりにテンプレートが、アドインの実行に必要なレジストリのエントリをセットアップ プロジェクトに追加します。

Windows インストーラ ファイルに起動条件を追加する

Setup.exe をダブルクリックしてソリューションをインストールする代わりに、.msi ファイルをダブルクリックしてソリューションをインストールする方法も選択できます。このモードでは、ユーザーはブートストラップを実行しません。そのため、セットアップは依存関係を検出できず、必要に応じた必須コンポーネントのインストールも行いません。

ただし、.msi ファイルに起動条件を追加して、正しい必須コンポーネントがない場合にインストールを回避することはできます。起動条件は、Windows インストーラ コンポーネントの ID を調べるか、レジストリの値をベースにできます。詳細については、「配置での起動条件の管理」を参照してください。たとえば、レジストリ キーを追加して VSTO 2005 SE ランタイムを調べて、ランタイムがインストールされていない場合にはメッセージを表示することができます。

図 4. VSTO 2005 SE ランタイムを検索する起動条件

Aa537173.bb332051_fig4(ja-jp,office.11).gif


VSTO 2005 SE ランタイム、Visual Studio Tools for Office Language Pack、起動条件として使用できる Office プライマリ相互運用機能アセンブリ用のコンポーネント ID の一覧は、「製品コードとコンポーネント ID」のセクションを参照してください。

セットアップ プロジェクトを Windows Vista 用に調整する

Windows Vista User Access Control (UAC) に準拠したソリューションの作成方法について、詳細は、Microsoft Download Center からドキュメント「Windows Vista Application Development Requirements for User Account Control Compatibility」 (英語) をダウンロードしてください。

Visual Studio Tools for Office には、固有の考慮事項がいくつかあります。

Setup.exe とブートストラップ パッケージ

Windows Vista UAC 用に設計されたアプリケーションには、「管理者として実行」など、必要な実行レベルを説明したアプリケーション マニフェストが必要です。アプリケーションに、埋め込みマニフェストか外部マニフェストのどちらかがない場合、Windows Vista は複数のヒューリスティックを使用して、実行レベルを特定します。たとえば、ファイル名に "install" や "setup" などの単語が含まれている場合は、ファイルの実行に管理者権限が必要です。

Setup.exe とそれに関連付けられたブートストラップ パッケージには、次のアプリケーション マニフェストが必要です。

  • Setup.exe
    Visual Studio 2008 のセットアップ プロジェクトで生成されたブートストラップ (Setup.exe) には、自動的に埋め込みマニフェストが含まれています。このマニフェストでは、アプリケーションが "asInvoker" で実行される、つまり標準ユーザー トークンで実行されることを示しています。Setup.exe によって起動される必須コンポーネント パッケージには、すべて個別の昇格が必要です。
    Visual Studio 2005 のセットアップ プロジェクトで生成されたブートストラップ パッケージには、埋め込みマニフェストが含まれていないため、これを追加する必要があります。Visual Studio 2008 の Setup.exe とは対照的に、Visual Studio 2005 の必要実行レベル ("requestedExecutionLevel") は管理者 ("requireAdministrator") にする必要があります。
    Visual Studio 2008 では、資格情報を求めるプロンプトによって、すべての Windows Vista ユーザーが管理者になれる可能性がある、と仮定していますが、Visual Studio 2005 のブートストラップではそういった仮定がされていないため、管理者として実行しなければなりません。しかし、Windows Vista の標準ユーザーが Visual Studio 2005 のセットアップを実行して、管理資格情報の入力を要求された場合は、昇格された資格情報で Windows インストーラ パッケージ (MSI) もインストールされます。MSI がシングル ユーザーのインストール (たとえば Visual Studio Tools for Office アドイン) の場合、アドインは、標準ユーザーではなく管理者でインストールされます。この状況は、Setup.exe 自体が昇格されない Visual Studio 2008 では起きません。
  • VSTO 2005 SE ランタイムと Language Pack のブートストラップ パッケージ
    ここに記載されているサンプルには、外部アプリケーション マニフェストが含まれています。
  • Office コンポーネント チェッカー
    このチェックにはマニフェストが必要です。必要実行レベルは「runAsInvoker」です。

Windows インストーラ パッケージ (MSI)

MSI には Visual Studio Tools for Office ソリューションが含まれています。このソリューションは、MSI を起動するか、Setup.exe を実行するとインストールできます。Setup.exe は必須コンポーネントを検出してインストールし、その後、MSI を起動します。

MSI をWindows Vista で使用するには、変更が必要です。これらの手順には、最新バージョンの Microsoft Windows Software Development Kit (SDK) for Windows Server 2008 and .NET Framework 3.5 (英語) が必要になります。

シングル ユーザーのインストール

既定では、アドイン プロジェクト用に作成されたセットアップ プロジェクトは、現在のユーザーに対してソリューションをインストールします。ソリューションは Program Files ディレクトリにインストールされますが、ユーザーは、このフォルダにインストールする許可を持っていない可能性があります。その場合、代わりにソリューションをユーザーのアプリケーション データ フォルダとコントロールにインストールして、インストール フォルダを削除するように設定できます。次に、MSI を UAC 準拠としてマークする必要があります。そうしないと、標準ユーザーは資格情報の入力を要求されることになります。Windows SDK には、Orca という名前の MSI ファイル エディタが含まれています。このエディタを使用して、MSI ファイルをマークします。

インストール フォルダをユーザーのアプリケーション データ フォルダに設定するには

  1. [ソリューション エクスプローラ] でセットアップ プロジェクトを右クリックします。
  2. [表示] をポイントし、[ファイル システム] をクリックします。
  3. [ファイル システム エディタ] で [アプリケーション フォルダ] ノードをクリックします。
  4. [プロパティ] ウィンドウで、[DefaultLocation] プロパティを [AppDataFolder]\[ProductName] に設定します。

インストール フォルダのコントロールを削除するには

  1. [ソリューション エクスプローラ] でセットアップ プロジェクトを右クリックします。
  2. [表示] をポイントし、[ユーザー インターフェイス] をクリックします。
  3. [ユーザー インターフェイス エディタ] で [インストール フォルダ] ノードを右クリックし、[削除] をクリックします。

MSI を UAC 準拠にするには

  1. セットアップ プロジェクトを構築します。
  2. Visual Studio を終了します。
  3. Orca を起動して、ビルド フォルダから MSI を開きます。
  4. [View] メニューの [Summary Information] をクリックします。
  5. [UAC Compliant] をクリックします。
  6. [OK] をクリックします。
  7. [File] メニューの [Save] をクリックします。
ヒント:   セットアップ プロジェクトを構築するときには、常に Orca ツールを使用して、MSI を UAC 準拠としてマークしてください。

混在モード インストール

既定では、セットアップ プロジェクトはすべてのユーザーまたは現在のユーザーに対するインストールをサポートしています。すべてのユーザーに対するインストールはオプションであり、ユーザーが管理者の場合にのみ使用できます。下位互換性用に、コントロールがプロパティ MSIUSEREALADMINDETECTION が設定されるまで、すべてのユーザーに対して表示されます。Orca ツールで、MSIUSEREALADMINDETECTION という新しいプロパティを、値を 1 にして追加します。

Visual Studio Tools for Office ソリューションの配置に関する既知の問題

  • 現在、Visual Studio の セットアップでは、.NET Framework の 64 ビット バージョン用ブートストラップを提供していません。
    必須コンポーネントとして .NET Framework を含んだセットアップ プロジェクトを構築するときには、32 ビット バージョンが使用されます。セットアップ パッケージは 64 ビット コンピュータ上で動作しません。これは、32 ビット バージョンが、Windows on Windows (WOW64) サブシステムでは動作できないためです。この問題を回避するには、セットアップを実行する前に、.NET Framework の 64 ビット バージョンを手動でインストールする必要があります。
  • ブートストラップ パッケージのサンプルは、Office Toolkit Loader (OtkLoader) を更新する必要があるかどうかを調べません。
    Visual Studio Tools for Office には、更新したバージョンの OtkLoader が必要です。OtkLoader は、Office とスタンドアロン製品に含まれています。Office または Office のスタンドアロン製品をインストールする場合、インストール処理の一部として、Visual Studio Tools for Office ランタイムは OtkLoader を更新します。VSTO 2005 SE ランタイムをインストールしてから Office をインストールすることもできますが、この場合、OtkLoader に必要な更新は行われません。
  • セキュリティのカスタム動作のサンプルは、ファイル共有にインストールされたソリューションに対する信頼の付与をサポートしていません。
    サンプルのカスタム動作では、ソリューションがローカルのファイル フォルダに配置されるときの、セキュリティ ポリシーの更新を示しています。ソリューションを共有の場所に配置するときの考慮事項については、「方法: 共有の場所にあるドキュメントおよびブックにアクセス許可を与える」を参照してください。
  • セットアップには、Office プライマリ相互運用機能アセンブリの再頒布可能パッケージを含める必要があります。
    セットアップの作成者は必須コンポーネントを決定することができます。また、必須コンポーネントを Web からダウンロードするか、Windows インストーラに含めるか、ネットワーク ファイル共有などの事前に決めた場所からダウンロードするかを決定することもできます。
    プライマリ相互運用機能アセンブリの再頒布可能パッケージを入手するには、インストーラをダウンロードし、マイクロソフト ソフトウェア ライセンス条項に同意して、インストール フォルダから再頒布可能パッケージをコピーしなければなりません。再頒布可能パッケージを直接ダウンロードする方法はないので、これは常にセットアップに含めておく必要があります。
    必須コンポーネントのインストール場所を Web に設定している場合は、セットアップ プロジェクトを構築する際には再頒布可能パッケージを必ず含めなければならない、といった内容の、次のような警告が表示されます。
    警告: Microsoft Office 2003 Primary Interop Assemblies に対して HomeSite 属性が指定されていませんでした。そのため、パッケージは同じ場所にブートストラップとして発行されます。
  • ComponentCheck.cpp ソース ファイルをコンパイルすると、コンパイル エラーが発生します。
メモ:   Visual Studio Tools for Office を使用している場合は、必ず Microsoft .NET Framework 2.0 SDK 日本語版 (x86)Microsoft Windows Software Development Kit for Windows Vista and .NET Framework 3.0 Runtime Components の両方をインストールしておかなければなりません。既定では、Visual Studio Tools for Office は .NET Framework 2.0 SDK をインストールしません。これは、ダウンロードできますが、インストール メデイアからインストールすることもできます。これには、たとえば、Visual Studio Tools for Office で Add or Remove Programs コマンドを使用します。Visual Studio Team System を使用している場合は、これらをダウンロードする必要はありません。
  • Setup.exe では、常にプライマリ相互運用機能アセンブリの再頒布可能パッケージがインストールされます。
    再頒布可能パッケージはプライマリ相互運用機能アセンブリを、現在インストールされているアプリケーションに対してのみインストールします。したがって、必須コンポーネント パッケージは、プライマリ相互運用機能アセンブリのパッケージを常にインストールして、必ずすべてのプライマリ相互運用機能アセンブリをインストールするように構成されます。
    必須コンポーネント パッケージは、まだソリューションに必要なものがインストールされていない場合のみ、プライマリ相互運用機能アセンブリをインストールするように構成することができます。
    これを行うには、適切な再頒布可能パッケージの product.xml ファイルを編集します。たとえば、ソリューションに Word and SmartTag プライマリ相互運用機能アセンブリが必要な場合は、<InstallChecks> ノードに次のチェックを追加します。
    さまざまな Office プライマリ相互運用機能アセンブリ用のコンポーネント コードを、「製品コードとコンポーネント ID」セクションに記載してあります。
    次に、以下のチェックを <InstallConditions> ノードに追加します。

製品コードとコンポーネント ID

製品コードは特定の製品リリース用の、一意の識別子であり、{12345678-1234-1234-1234-123456789012} のような文字列 GUID で表します。製品コードは、ブートストラップに特定の製品やパッケージが存在するかどうかを調べるのに使用できます。

1 つの製品は、複数の製品で共有できる多数のコンポーネントから構成されています。コンポーネント ID もまた、GUID の形式で表されます。Windows インストーラ ファイルの起動条件では製品コードをサポートしていないので、コンポーネント ID やレジストリのエントリなど、別のチェックを使用する必要があります。ただし、特定の製品の存在を調べるのにコンポーネント ID を使用している場合は、その特定の製品に固有のコンポーネント ID を探してみてください。

表 4. ブートストラップされるパッケージの製品コードとコンポーネント ID

パッケージ 製品コード コンポーネント ID
VSTO 2005 SE ランタイム{388E4B09-3E71-4649-8921-F44A3A2954A7}{D2AC2FF1-6F93-40D1-8C0F-0E135956A2DA}
Visual Studio 2005 Tools for Office Language Pack{5DB161C0-7C9C-41D7-8DA1-CB112F60946B}{2E3A394E-C9BD-40C3-9990-BA7AF7C8B4AF}
Office 2003 プライマリ相互運用機能アセンブリ{91490409-6000-11D3-8CFE-0150048383C9}次に示す特定のプライマリ相互運用機能アセンブリのコンポーネント IDを使用する。
2007 リリース Office プライマリ相互運用機能アセンブリ{50120000-1105-0000-0000-0000000FF1CE}次に示す特定のプライマリ相互運用機能アセンブリのコンポーネント IDを使用する。

VSTO 2005 ランタイムと VSTO 2005 SE ランタイムは同じ製品コードを共有します。インストールされている VSTO 2005 ランタイムのバージョンを検出するには、次のレジストリ キーの Update 値を調べます。

HKLM\Software\Microsoft\vsto runtime Setup\v2.0.50727

Update 値には、次のような意味があります。

  • レジストリ キーはあるが Update の設定がない場合は、VSTO 2005 ランタイムの最初のエディション (バージョン 8.0.50727.42) がインストールされています。
  • Update = 1 の場合、以前の VSTO 2005 SE ランタイム (バージョン 8.0.50727.816) がインストールされています。
  • Update = 2 の場合、VSTO 2005 SE ランタイムのバージョン 8.0.50727.891 がインストールされています。ここで記載されているブートストラップ パッケージは、ビルド 891 を検出、インストールするように構成されています。

Office プライマリ相互運用機能アセンブリのコンポーネント ID

次の表は、プライマリ相互運用機能アセンブリのコンポーネント ID の一覧です。これらの値は、Microsoft Office がプライマリ相互運用機能アセンブリをインストールしても、再頒布可能パッケージがインストールしても同じです。

コンポーネント ID は、product.xml ブートストラップ ファイルを Office プライマリ相互運用機能アセンブリや Windows インストーラ ファイルの起動条件に拡張する場合に使用できます。

表 5. プライマリ相互運用機能アセンブリのコンポーネント ID

プライマリ相互運用機能アセンブリ Office 2003 コンポーネント ID Office 2007 コンポーネント ID
Excel{A1FE0698-609D-400F-BF10-F52238DD6475}{1ABEAF09-435F-47D6-9FEB-0AD05D4EF3EA}
InfoPath{C1E59364-35F6-44B3-AF0F-FCA934C4B252}{F1B5AE30-CB00-4DCF-978B-07D33B034ADB}
Outlook {14D3E42A-A318-4D77-9895-A7EE585EFC3B}{ED569DB3-58C4-4463-971F-4AAABB6440BD}
PowerPoint{3F40FA9E-26CA-4CA2-93C9-603622349915}{04E73476-518E-4B6A-8E10-021A00078847}
Visio{6F1AE751-4D8A-4B25-AC0A-C6CB912A9791}{C1F1028F-D91A-43E8-A117-4F7CAFD7A041}
Word{1C8772BD-6E6F-4C9D-8FF8-B5EA072F86EF}{816D4DFD-FF7B-4C16-8943-EEB07DF989CB}
Microsoft Forms 2.0*{835AC3CE-E36B-4D65-B50F-2863A682ABEE}{835AC3CE-E36B-4D65-B50F-2863A682ABEE}
Microsoft Graph{A58B51D1-89BF-4D88-939D-B6D0DB2EEB53}{580CB155-841D-4D48-9F59-866A035C2241}
スマート タグ{53C65973-D89D-4EA0-8567-8788C14E0A02}{00B41853-4377-4AD8-AD44-8404E0D331EC}

* 2003 リリースと 2007 リリース間に変更はありません。

まとめ

ここでは、Windows インストーラ パッケージを作成する Visual Studio のセットアップ プロジェクトを使用した、Visual Studio Tools for Office ソリューションの配置について、概要を説明しました。この記事では、必要な必須コンポーネント ( .NET Framework 2.0、VSTO 2005 SE ランタイム、プライマリ相互運用機能アセンブリ) をインストールする方法や、カスタマイズ アセンブリに信頼を付与する方法、ドキュメントのカスタマイズ アセンブリの場所を更新する方法を示したサンプルを提供しています。共通の配置メソッドについて説明し、Windows インストーラを使用して Visual Studio Tools for Office ソリューションを配置する、一般的なプロセスについても説明しました。プロセスの途中で遭遇する可能性のある既知の問題もリストしてあります。

Windows インストーラ配置の、2 つのウォークスルー例は、「Windows インストーラを使用して Visual Studio 2005 Tools for Office Second Edition ソリューションを配置する (Part 2 of 2)」を参照してください。

追加情報

この記事に記載されている製品やテクノロジの詳細については、以下の情報を参照してください。

コードのセキュリティ

再頒布可能パッケージ


versha

表示: