Windows インストーラーを使用した Office ソリューション用の Visual Studio ツールの展開Deploying a Visual Studio Tools for Office Solution Using Windows Installer

まとめSummary

Visual Studio インストーラー プロジェクトを使用して Office 用の Microsoft Visual Studio ツール (VSTO) アドインまたはドキュメント レベルのソリューションを展開する方法について説明します。Learn how to deploy a Microsoft Visual Studio Tools for Office (VSTO) add-in or document-level solution using a Visual Studio Installer project.

ウーター・ファン・ヴクト,コード・カウンセルWouter van Vugt, Code Counsel

テッド・パティソン,テッド・パティソン・グループTed Pattison, Ted Pattison Group

この資料は、元の作成者の許可を得てマイクロソフトによって更新されました。This article was updated by Microsoft with permission from the original authors.

適用対象: オフィス、マイクロソフトオフィス、マイクロソフトビジュアルスタジオのためのビジュアルスタジオツール。Applies to: Visual Studio Tools for Office, Microsoft Office, Microsoft Visual Studio.

概要Overview

VSTO ソリューションを開発し、Windows インストーラー パッケージを使用してソリューションを展開できます。You can develop a VSTO solution and deploy the solution by using a Windows Installer package. この説明には、簡単な Office アドインを展開する手順が含まれています。This discussion includes steps for deploying a simple Office Add-in.

配置方法Deployment Methods

ClickOnce を使用すると、アドインとソリューションのセットアップを簡単に作成できます。ClickOnce can easily be used to create setups for your Add-ins and solutions. ただし、コンピューター レベルのアドインなどの管理者特権を必要とするアドインはインストールできません。However, it can't install Add-ins that require administrative privileges such as machine level Add-ins.

管理者特権を必要とするアドインは、Windows インストーラを使用してインストールできますが、セットアップを作成するにはより多くの労力が必要です。Add-ins that require administrative privileges can be installed by using Windows Installer but it does require more effort to create the setup.

ClickOnce を使用して VSTO ソリューションを配置する方法の概要については、「 ClickOnce を使用して Office ソリューションを配置する」を参照してください。For an overview of how to deploy a VSTO solution using ClickOnce, see Deploy an Office solution by using ClickOnce.

VSTO ランタイムを対象とする Office ソリューションの展開Deploying Office solutions that target the VSTO runtime

ClickOnce と Windows インストーラー パッケージは、Office ソリューションをインストールするときに同じ基本的なタスクを実行する必要があります。ClickOnce and Windows Installer packages need to do the same rudimentary tasks when installing an Office solution.

  1. ユーザー のコンピューターに必須コンポーネントをインストールします。Install prerequisite components on the user computer.
  2. ソリューションの特定のコンポーネントを展開します。Deploy the specific components for the solution.
  3. アドインの場合は、レジストリ エントリを作成します。For Add-ins, create registry entries.
  4. ソリューションを信頼して実行できるようにします。Trust the solution to allow it to execute.

ターゲット コンピュータで必要な必須コンポーネントRequired Prerequisite Components on the Target Computer

VSTO ソリューションを実行するためにコンピュータにインストールする必要があるソフトウェアの一覧を次に示します。Here's the list of software that must be installed on the computer to run VSTO solutions:

  • マイクロソフトオフィス2010以降。Microsoft Office 2010 or newer.
  • .NET フレームワーク 4 以降。The Microsoft .NET Framework 4 or newer.
  • Microsoft Visual Studio 2010 Tools for Office RuntimeThe Microsoft Visual Studio 2010 Tools for Office Runtime. ランタイムは、アドインとドキュメント レベルのソリューションを管理する環境を提供します。The runtime provides an environment that manages Add-ins and document-level solutions. ランタイムのバージョンは Microsoft Office に付属していますが、アドインと共に特定のバージョンを再配布することもできます。A version of the Runtime does ship with Microsoft Office but you may want to redistribute a specific version with your add-in.
  • 埋め込み相互運用機能の種類を使用していない場合は、Microsoft Office のプライマリ相互運用機能アセンブリ。The Primary Interop assemblies for Microsoft Office, if you're not using Embedded Interop Types.
  • プロジェクトによって参照されるユーティリティ アセンブリ。Any utilities assemblies referenced by projects.

ソリューションの特定のコンポーネントSpecific Components for the Solution

インストーラ パッケージは、次のコンポーネントをユーザーのコンピュータにインストールする必要があります。The installer package must install these components to the user's computer:

  • ドキュメント レベルのソリューションを作成する場合は、Office ドキュメントを作成します。The Microsoft Office document, if you create a document-level solution.
  • カスタマイズ アセンブリと、必要なアセンブリ。The customization assembly and any assemblies it requires.
  • 構成ファイルなどの追加コンポーネント。Additional components such as configuration files.
  • アプリケーション マニフェスト (.manifest)The application manifest (.manifest).
  • 配置マニフェスト (.vsto)The deployment manifest (.vsto).

アドインのレジストリ エントリRegistry Entries for Add-ins

Office では、レジストリ エントリを使用してアドインを検索し、読み込みます。これらのレジストリ エントリは、展開プロセスの一部として作成する必要があります。Microsoft Office uses registry entries to locate and load Add-ins. These registry entries should be created as part of the deployment process. これらのレジストリ エントリの詳細については、「 VSTO アドインのレジストリ エントリ」を参照してください。For more information about these registry entries, see Registry entries for VSTO Add-ins.

カスタム フォーム領域を表示する Outlook アドインでは、フォーム領域を識別するための追加のレジストリ エントリが必要です。Outlook Add-ins that display custom form regions require additional registry entries that allow the form regions to be identified. レジストリ エントリの詳細については、「 Outlook フォーム領域のレジストリ エントリ」を参照してください。For more information about registry entries, see Registry entries for Outlook form regions.

ドキュメント レベルのソリューションでは、レジストリ エントリは必要ありません。Document-level solutions don't require any registry entries. 代わりに、ドキュメント内のプロパティを使用してカスタマイズを検索します。Instead, properties inside the document are used to locate the customization. これらのプロパティの詳細については、「カスタム ドキュメント プロパティの概要」を参照してください。For more information about these properties, see Custom Document Properties Overview.

VSTO ソリューションを信頼するTrusting the VSTO Solution

カスタマイズを実行するには、ソリューションがコンピューターによって信頼されている必要があります。In order for a customization to run, a solution must be trusted by the machine. アドインは、証明書を使用してマニフェストに署名するか、信頼リストとの信頼関係を作成するか、またはコンピューター上の信頼できる場所にインストールすることによって信頼できます。The Add-in can be trusted by signing the manifest with a certificate, creating a trust-relationship with an inclusion list, or by installing it to a trusted location on the machine.

署名用の証明書を取得する方法の詳細については、「 ClickOnce の配置と認証の方法」を参照してください。For more information about how to obtain a certificate for signing, see ClickOnce Deployment and Authenticode. ソリューションの信頼の詳細については、「包含リストを使用して Office ソリューションを信頼する」を参照してください。For more information about trusting solutions, see Trusting Office Solutions by Using Inclusion Lists. Windows インストーラ ファイルにカスタム動作を含む対象リスト エントリを追加できます。You can add an inclusion list entry with a custom action in your Windows Installer file. 包含リストを有効にする方法の詳細については、「方法 : 包含リスト セキュリティを構成する」を参照してください。For more information about enabling the inclusion list, see How to: Configure Inclusion List Security.

どちらのオプションも使用しない場合は、ソリューションを信頼するかどうかをユーザーに決定させる信頼プロンプトが表示されます。If neither option is used, a trust prompt is displayed to the user to let them decide whether to trust the solution.

ドキュメント レベルのソリューションに関連するセキュリティの詳細については、「ドキュメントに対する信頼の付与」を参照してください。For more information about security related to document-level solutions, see Granting Trust to Documents.

基本インストーラの作成Creating a Basic Installer

セットアップ プロジェクト テンプレートと配置プロジェクト テンプレートは、ダウンロード可能なMicrosoft Visual Studio インストーラー プロジェクト拡張機能に含まれています。The Setup and Deployment project templates are included with the Microsoft Visual Studio Installer Projects extension that is available for download.

Office ソリューションのインストーラーを作成するには、次の作業を実行する必要があります。To create an installer for an Office solution, these tasks must be accomplished:

  • 展開する Office ソリューションのコンポーネントを追加します。Add the components of the Office Solution that will be deployed.
  • アプリケーション レベルのアドインの場合は、レジストリ キーを構成します。For application-level Add-ins, configure registry keys.
  • エンド ユーザーのコンピュータにインストールできるように、前提条件コンポーネントを構成します。Configure prerequisite components so they can be installed on the end-users computers.
  • 起動条件を設定して、必要な前提条件コンポーネントが使用可能であることを確認します。Configure launch conditions to verify that the required prerequisite components are available. 必要な前提条件がすべてインストールされていない場合は、起動条件を使用してインストールをブロックできます。Launch conditions can be used to block the install if all required prerequisites are not installed.

最初の手順は、セットアップ プロジェクトを作成することです。The first step is to create the setup project.

アドイン セットアップ プロジェクトを作成するにはTo create the AddIn Setup project

  1. 展開する Office アドイン プロジェクトを開きます。Open the Office AddIn Project you want to deploy. この例では、ExcelAddIn という名前の Excel アドインを使用しています。For this example, we're using an Excel Add-in called ExcelAddIn.
  2. Office プロジェクトを開いた場合は、[ファイル] メニューの [追加] を展開し、[新しいプロジェクト] をクリックして新しいプロジェクトを追加します。With the Office Project Open, on the File menu, expand Add and click New Project to add a new project.
  1. [新しいプロジェクトの追加] ダイアログで、[プロジェクトの種類] ペインの [その他のプロジェクトの種類] を展開し、[セットアップと配置] を展開して 、[Visual Studio インストーラー] を選択します。 the Project typesIn the Add New Project dialog, expand Other Project Types in the Project types pane, then expand Setup and Deployment and then select Visual Studio Installer.
  2. [テンプレート] ウィンドウで 、[Visual Studio がインストールされているテンプレート] グループから [セットアップ プロジェクト] を選択します。In the Templates pane, select Setup Project from the Visual Studio installed templates group.
  1. [新しいプロジェクトの追加]ダイアログ で、[プロジェクトのセットアップ] テンプレートを選択します。On the Add a New Project dialog, select the Setup Project template.
  2. [次へ] をクリックします。Click Next.
  1. [名前] ボックスに「OfficeAddInSetup」 と入力します。In the Name box, type OfficeAddInSetup.
  1. [開く] をクリックして、新しいセットアップ プロジェクトを作成します。Click Open to create the new setup project.
  1. [作成] をクリックして、新しいセットアップ プロジェクトを作成します。Click Create to create the new setup project.

Visual Studio は、新しいセットアップ プロジェクトのファイル システム エクスプローラーを開きます。Visual Studio opens the File System Explorer for the new setup project. ファイル システム エクスプローラでは、セットアップ プロジェクトにファイルを追加できます。The File System Explorer allows you to add files to the setup project.

セットアップ プロジェクトのファイル システム エクスプローラーのスクリーンショット

図 1: セットアップ プロジェクトのファイル システム エクスプローラFigure 1: File System Explorer for the setup project

セットアップ プロジェクトは、ExcelAddIn を配置する必要があります。The setup project needs to deploy the ExcelAddIn. このタスクのセットアップ プロジェクトを構成するには、ExcelAddIn プロジェクト出力をセットアップ プロジェクトに追加します。You can configure the setup project for this task by adding the ExcelAddIn project output to the setup project.

プロジェクト出力を追加するにはTo add the ExcelAddIn project output

  1. ソリューションエクスプローラで、[ OfficeAddInSetup] を右クリックし、[追加]、[プロジェクト出力] の順にクリックします。In the Solution Explorer, right-click OfficeAddInSetup, click Add and then Project Output.

  2. [プロジェクト出力グループの追加] ダイアログで、プロジェクトリストからExcelAddInを選択し、プライマリ出力を選択します。In the Add Project Output Group dialog, select the ExcelAddIn from the project list, and Primary Output.

  3. [OK] をクリックして、プロジェクト出力をセットアップ プロジェクトに追加します。Click OK to add the project output to the setup project.

    [プロジェクトのセットアップ] [プロジェクト出力グループの追加] ダイアログ のスクリーンショット

    図 2: プロジェクトのセットアップ プロジェクトの [プロジェクト出力グループの追加] ダイアログFigure 2: Setup Project Add Project Output Group dialog

セットアップ プロジェクトは、配置マニフェストとアプリケーション マニフェストを配置する必要があります。The setup project needs to deploy the deployment manifest and application manifest. ExcelAddIn プロジェクトの出力フォルダーからスタンドアロン ファイルとして、セットアップ プロジェクトにこれらの 2 つのファイルを追加します。Add these two files to the setup project as stand-alone files from the output folder of the ExcelAddIn project.

配置マニフェストとアプリケーション マニフェストを追加するにはTo add the deployment and application manifests

  1. ソリューションエクスプローラ、[OfficeAddInSetup] を右クリックし、[追加]をクリックしますIn the Solution Explorer, right-click OfficeAddInSetup, click Add, and click File.

  2. [ファイルの追加] ダイアログ ボックスで 、ExcelAddIn出力ディレクトリに移動します。In the Add Files dialog box, navigate to the ExcelAddIn output directory. 通常、出力ディレクトリは、選択したビルド構成に応じて、プロジェクトルートディレクトリのbin\releaseサブフォルダーです。Usually the output directory is the bin\release subfolder of the project root directory, depending on the selected build configuration.

  3. ExcelAddIn.vstoファイルとExcelAddIn.dll.manifest.manifestファイルを選択し、[開く] をクリックして、これらの 2 つのファイルをセットアップ プロジェクトに追加します。Select the ExcelAddIn.vsto and ExcelAddIn.dll.manifest files and click Open to add these two files to the setup project.

    ソリューション エクスプローラーでのアプリケーション マニフェストと配置マニフェストのスクリーンショット

    図 3: ソリューション エクスプローラーでアドインのアプリケーション マニフェストと配置マニフェストFigure 3: Application and deployment manifests for the Add-in in Solution Explorer

ExcelAddIn を参照すると、ExcelAddIn で必要なすべてのコンポーネントが含まれます。Referencing the ExcelAddIn includes all the components that ExcelAddIn requires. これらのコンポーネントは、正しく登録できるように、前提条件パッケージを使用して除外および展開する必要があります。These components must be excluded and deployed using prerequisite packages to allow them to be registered correctly. また、インストールを開始する前にソフトウェア ライセンス条項を表示し、同意する必要があります。Also, the Software License Terms must be displayed and accepted before the installation begins.

ExcelAddIn プロジェクトの依存関係を除外するにはTo exclude the ExcelAddIn project dependencies

  1. ソリューションエクスプローラー[OfficeAddInSetup] ノードで、[検出された依存関係] 項目の下のすべての依存関係項目を選択*****します。ユーティリティ.dll.In the Solution Explorer, in the OfficeAddInSetup node, select all dependency items beneath the Detected Dependencies item except for Microsoft .NET Framework or any assembly that ends with *.Utilities.dll. ユーティリティ アセンブリは、アプリケーションと共に配置されます。The Utilities assemblies are meant to be deployed along with your application.

  2. グループを右クリックし、[プロパティ ] を選択します。Right-click the group and select Properties.

  3. [プロパティ] ウィンドウで、セットアップ プロジェクトから依存アセンブリを除外するには、ExcludeプロパティをTrueに変更します。In the Properties window, change the Exclude property to True to exclude the dependent assemblies from the setup project. ユーティリティ アセンブリは除外しないでください。Make sure to not exclude any Utilities assemblies.

    除外する依存関係を示すソリューション エクスプローラーのスクリーンショット

    図 4: 依存関係の除外Figure 4: Excluding dependencies

Windows インストーラ パッケージを構成して、ブートストラップとも呼ばれるセットアップ プログラムを追加して、必須コンポーネントをインストールできます。You can configure your Windows Installer package to install prerequisite components by adding a Setup program, also known as a bootstrapper. このセットアップ プログラムは、ブートストラップと呼ばれるプロセスの前提条件コンポーネントをインストールできます。This setup program can install the prerequisite components, a process called bootstrapping.

ExcelAddInの場合、アドインを正しく実行するには、次の前提条件をインストールする必要があります。For the ExcelAddIn, these prerequisites must be installed before the Add-in can run correctly:

  • Office ソリューションが対象とするバージョンです。The Microsoft .NET Framework version that the Office Solution targets.
  • Microsoft Visual Studio 2010 Tools for Office Runtime。Microsoft Visual Studio 2010 Tools for Office Runtime.

依存コンポーネントを必須コンポーネントとして構成するにはTo configure dependent components as prerequisites

  1. ソリューションエクスプローラ、OfficeAddInSetupプロジェクトを右クリックし、[プロパティ] をクリックします。In the Solution Explorer, right-click the OfficeAddInSetup project and select Properties.

  2. [OfficeAddInSetup プロパティ ページ] ダイアログ ボックスが表示されます。The OfficeAddInSetup Property Pages dialog box appears.

  3. [前提条件] ボタンをクリックします。Click the Prerequisites button.

  4. [必須コンポーネント] ダイアログ ボックスで、Office ランタイム用の .NET フレームワークと Visual Studio ツールの正しいバージョンを選択します。In the Prerequisites dialog box, select the correct version of the .NET Framework and the Microsoft Visual Studio Tools for Office Runtime.

    [必須コンポーネント] ダイアログ ボックスのスクリーンショット

    図 5: [必須コンポーネント] ダイアログ ボックスFigure 5: Prerequisites Dialog Box

    注意

    Visual Studio セットアップ プロジェクトで構成されている前提条件パッケージの一部は、選択したビルド構成に依存しています。Some of the configured prerequisite packages in your Visual Studio Setup Project are dependent on the selected build configuration. 使用する各ビルド構成に対して、適切な前提条件コンポーネントを選択する必要があります。You must select the right prerequisite components for each build configuration that you use.

レジストリ キーを使用してアドインを検索します。Microsoft Office locates Add-ins by using registry keys. HKEY_現在_のユーザー ハイブのキーは、個々のユーザーのアドインを登録するために使用されます。The keys in the HKEY_CURRENT_USER hive are used to register the add-in for each individual user. HKEY_LOCAL_MACHINE ハイブの下のキーは、マシンのすべてのユーザーのアドインを登録するために使用されます。The keys under the HKEY_LOCAL_MACHINE hive are used to register the add-in for all users of the machine. レジストリ キーの詳細については、「 VSTO アドインのレジストリ エントリ」を参照してください。For more information about registry keys, see Registry entries for VSTO Add-ins.

レジストリを構成するにはTo configure the registry

  1. ソリューションエクスプローラで、[ OfficeAddInSetup] を右クリックします。In the Solution Explorer, right-click OfficeAddInSetup.

  2. [表示 ] を展開します。Expand View.

  3. [レジストリ] をクリックしてレジストリ エディタ ウィンドウを開きます。Click Registry to open the registry editor window.

  4. レジストリ (OfficeAddInSetup) エディターで 、HKEY__ローカル コンピューターを展開し、次にソフトウェアを展開します。In the Registry(OfficeAddInSetup) editor, expand HKEY_LOCAL_MACHINE and then Software.

  5. HKEY_ローカル_\マシン ソフトウェアの**[]** 下にある製造元の ?キーを削除します。Delete the [Manufacturer]?key found under HKEY_LOCAL_MACHINE\Software.

  6. HKEY_現在_のユーザーを展開し、ソフトウェアを展開します。Expand HKEY_CURRENT_USER and then Software.

  7. HKEY_現在_\[] ユーザー ソフトウェアの下にある製造元のキーを削除します。Delete the [Manufacturer] key found under HKEY_CURRENT_USER\Software.

  8. アドイン インストールのレジストリ キーを追加するには、ユーザー/マシン ハイブキーを右クリックし、[新しいキー] をクリックします。To add registry keys for the add-in installation right-click the User/Machine Hive key, select New Key. 新しいキーの名前には 「ソフトウェア」 というテキストを使用します。Use the text Software for the name of the new key. 新しく作成したソフトウェアキーを右クリックし、 Microsoftというテキストを使用して新しいキーを作成します。Right-click on the newly created Software key and create a new key with the text Microsoft.

  9. 同様のプロセスを使用して、アドイン登録に必要なキー階層全体を作成します。Use a similar process to create the entire key hierarchy required for the add-in registration:

    ユーザー/マシンハイ\ブ\ソフトウェア\マイクロソフト\オフィス\エクセルアドイン\サンプルカンパニー.ExcelAddInUser/Machine Hive\Software\Microsoft\Office\Excel\Addins\SampleCompany.ExcelAddIn

    会社名は、一意性を提供するアドインの名前のプレフィックスとしてよく使用されます。The Company Name is often used as a prefix for the name of the add-in to provide uniqueness.

  10. キーを右クリックし、[新規作成] をクリックして、[文字列値] をクリックします。Right-click the SampleCompany.ExcelAddIn key, select New, and click String value. 名前のテキストを使用して説明します。Use the text Description for the Name.

  11. このステップを使用して、さらに 3 つの値を追加します。Use this step to add three more values:

    • 文字列型の****フレンドリ名FriendlyName of type String
    • DWORD 型の読み込み動作****DWORDLoadBehavior of type DWORD
    • 文字列型のStringマニフェストManifest of type String
  12. レジストリ エディタで [説明] の値を右クリックし、[プロパティ ウィンドウ] をクリックします。Right-click the Description value in the registry editor and click Properties Window. [プロパティ] ウィンドウで、[値] プロパティに「Excel デモ アドイン」と入力します。In the Properties Window, enter Excel Demo AddIn for the Value property.

  13. レジストリ エディタで [フレンドリ名]キーを選択します。Select the FriendlyName key in the registry editor. [プロパティ] ウィンドウで、プロパティをExcel デモ アドインに変更します。In the Properties Window, change the Value property to Excel Demo AddIn.

  14. レジストリ エディタでLoadBehaviorキーを選択します。Select the LoadBehavior key in the registry editor. [プロパティ] ウィンドウ、Valueプロパティを 3 に変更します。In the Properties Window, change the Value property to 3. LoadBehavior の値 3 は、ホスト アプリケーションの起動時にアドインを読み込む必要があることを示します。The value 3 for the LoadBehavior indicates that the add-in should be loaded at startup of the host application. 読み込み動作の詳細については、「 VSTO アドインのレジストリ エントリ」を参照してください。For more information about load behavior, see Registry entries for VSTO Add-ins.

  15. レジストリ エディターで [マニフェスト] キーを選択します。Select the Manifest key in the registry editor. [プロパティ] ウィンドウで、[] プロパティをファイルに変更します。In the Properties Window, change the Value property to file:///[TARGETDIR]ExcelAddIn.vsto|vstolocal

    レジストリ エディタのスクリーンショット

    図 6: レジストリ キーの設定Figure 6: Setting up registry keys

    VSTO ランタイムは、このレジストリ キーを使用して配置マニフェストを見つけます。The VSTO runtime uses this registry key to locate the deployment manifest. [TARGETDIR] マクロは、アドインのインストール先のフォルダーに置き換えられます。The [TARGETDIR] macro will be replaced with the folder where the add-in is installed to. マクロには末尾の \ 文字が含まれるため、配置マニフェストのファイル名は \文字を除いた ExcelAddIn.vsto にする必要があります。The macro will include the trailing \ character, so the filename of the deployment manifest should be ExcelAddIn.vsto without the \ character. vstolocalポストフィックスは、アドインが ClickOnce キャッシュの代わりにこの場所から読み込む必要があることを VSTO ランタイムに通知します。The vstolocal postfix, tells the VSTO runtime that the Add-in should load from this location instead of the ClickOnce cache. この接尾辞を削除すると、ランタイムはカスタマイズを ClickOnce キャッシュにコピーします。Removing this postfix will cause the runtime to copy the customization into the ClickOnce cache.

警告

Visual Studio のレジストリ エディタには、細心の注意が必要です。You should be very careful with the Registry Editor in Visual Studio. たとえば、誤って誤ったキーに DeleteAtUninstall を設定した場合、レジストリのアクティブな部分を削除し、ユーザーのコンピュータが矛盾した状態、あるいはさらに悪い状態のままになることがあります。For example, if you accidentally set DeleteAtUninstall for the wrong key, you might delete an active part of the registry, leaving the user computer in an inconsistent, or even worse, broken state.

64 ビット バージョンの Office では、64 ビット レジストリ ハイブを使用してアドインを検索します。64 ビット レジストリ ハイブでアドインを登録するには、セットアップ プロジェクトのターゲット プラットフォームを 64 ビットのみに設定する必要があります。64-bit versions of Office will use the 64-bit registry hive to look for Add-ins. To register Add-ins under the 64-bit registry hive, the setup project's target platform must be set to 64-bit only.

  1. ソリューション エクスプローラーでOfficeAddInSetupプロジェクトを選択します。Select the OfficeAddInSetup project in solution explorer.
  2. [プロパティ] ウィンドウに移動し、[ターゲット プラットフォーム] プロパティを [x64] に設定します。Go to Properties window and set TargetPlatform property to x64.

32 ビット版と 64 ビット版の Office の両方に対してアドインをインストールするには、2 つの別個の MSI パッケージを作成する必要があります。Installing an Add-in for both 32-bit and 64-bit versions of Office, will require you to create two separate MSI packages. 32 ビット用と 64 ビット用の 1 つ。One for 32-bit and one for 64-bit.

64 ビット Office にアドインを登録するためのターゲット プラットフォームを示す [プロパティ] ウィンドウのスクリーンショット

図 7: 64 ビット Office にアドインを登録するためのターゲット プラットフォームFigure 7: Target Platform for registering Add-ins with 64-bit Office

MSI パッケージを使用してアドインまたはソリューションをインストールする場合、必要な必須コンポーネントをインストールせずにインストールされる場合があります。If the MSI package is used to install the Add-in or solution, it may install without the required prerequisites being installed. MSI の起動条件を使用して、前提条件がインストールされていない場合にアドインのインストールをブロックできます。You can use Launch Conditions in the MSI to block the Add-in from installing if the prerequisites are not installed.

VSTO ランタイムを検出するための起動条件の構成Configure a launch condition to detect the VSTO Runtime

  1. ソリューションエクスプローラで、[ OfficeAddInSetup] を右クリックします。In the Solution Explorer, right-click OfficeAddInSetup.

  2. [表示 ] を展開します。Expand View.

  3. [起動条件] をクリックします。Click Launch Conditions.

  4. 起動条件 (OfficeAddInSetup) エディターで、ターゲットコンピューターの要件を右クリックし、レジストリ起動条件の追加] をクリックします。In the Launch Conditions(OfficeAddInSetup) editor, right-click Requirements on Target Machine, and then click Add Registry Launch Condition. この検索条件は、VSTO ランタイムがインストールするキーをレジストリで検索できます。This search condition can search the registry for a key that the VSTO runtime installs. キーの値は、名前付きプロパティを通じてインストーラーのさまざまな部分で使用できます。The value of the key is then available to the various pieces of the installer through a named property. 起動条件では、検索条件で定義されたプロパティを使用して、特定の値をチェックします。The launch condition uses the property defined by the search condition to check for a certain value.

  5. 起動条件 (OfficeAddInSetup) エディターで、レジストリEntry1 の検索検索条件を選択し、条件を右クリックして、プロパティ ウィンドウを選択します。In the Launch Conditions(OfficeAddInSetup) editor, select the Search for RegistryEntry1 search condition, right-click the condition, and select Properties Window.

  6. [プロパティ] ウィンドウで、次のプロパティを設定します。In the Properties window, set these properties:

    1. [(名前)] の値を [VSTO 2010 ランタイムの検索] に設定します。Set the value of (Name) to Search for VSTO 2010 Runtime.
    2. プロパティの値をVSTORUNTIMEREDISTに変更します。Change the value of Property to VSTORUNTIMEREDIST.
    3. ソフトウェア****\マイクロソフト VSTO ランタイム\セットアップ v4R にレジストリ キーの値を設定\します。Set the value of RegKey to SOFTWARE\Microsoft\VSTO Runtime Setup\v4R
    4. RootプロパティはvsdrrHKLMに設定したままにします。Leave the Root property set to vsdrrHKLM.
    5. "値" プロパティを [バージョン] に変更します。Change the Value property to Version.
  7. 起動条件 (OfficeAddInSetup) エディターで 、Condition1の起動条件を選択し、条件を右クリックして、 [ プロパティ ウィンドウ ] を選択します。In the Launch Conditions(OfficeAddInSetup) editor, select the Condition1 launch condition, right-click the condition, and select Properties Window.

  8. [プロパティ] ウィンドウで、次のプロパティを設定します。In the Properties window, set these properties:

    1. (名前) を VSTO 2010 ランタイムの可用性を確認する に設定します。Set the (Name) to Verify VSTO 2010 Runtime availability.

    2. 条件の値をVSTORUNTIMEREDIST>="10.0.30319" に変更します。Change the value of the Condition to VSTORUNTIMEREDIST>="10.0.30319"

    3. "InstallURL/インストール URL" プロパティは空白のままにします。Leave the InstallURL property blank.

    4. Office ランタイム用の Visual Studio 2010 ツールがインストールされていないにメッセージを設定します。Setup.exe を実行してアドインをインストールしてくださいSet the Message to The Visual Studio 2010 Tools for Office Runtime is not installed. Please run Setup.exe to install the Add-in.

      ランタイムの可用性の確認の起動条件の [プロパティ] ウィンドウのスクリーンショット

      図 8: 実行時の可用性の確認の起動条件の [プロパティ] ウィンドウFigure 8: Properties Window for the Verify Runtime Availability launch condition

上記の起動条件は、ブートストラップ パッケージによってインストールされるときに、VSTO ランタイムの存在を明示的にチェックします。The launch condition above explicitly checks for the presence of the VSTO runtime when it's installed by the bootstrapper package.

Office によってインストールされた VSTO ランタイムを検出する起動条件を構成するConfigure a launch condition to detect the VSTO Runtime installed by Office

  1. 起動条件 (OfficeAddInSetup) エディタで、[ターゲットコンピュータの検索] を右クリックし、[レジストリ検索の追加] をクリックします。In the Launch Conditions(OfficeAddInSetup) editor, right-click Search Target Machine, and then click Add Registry Search.

  2. レジストリエントリ1の検索検索条件を選択し、条件を右クリックして、[プロパティウィンドウ] を選択します。Select the Search for RegistryEntry1 search condition, right-click the condition, and select Properties Window.

  3. [プロパティ] ウィンドウで、次のプロパティを設定します。In the Properties window, set these properties:

    1. (名前) の値をOffice VSTO ランタイムの検索に設定します。Set the value of (Name) to Search for Office VSTO Runtime.
    2. プロパティの値をOffice ランタイムに変更します。Change the value of Property to OfficeRuntime.
    3. レジストリ キーの値をソフトウェア\マイクロソフト\VSTO\ランタイム セットアップ v4に設定します。Set the value of RegKey to SOFTWARE\Microsoft\VSTO Runtime Setup\v4.
    4. RootプロパティはvsdrrHKLMに設定したままにします。Leave the Root property set to vsdrrHKLM.
    5. "値" プロパティを [バージョン] に変更します。Change the Value property to Version.
  4. 起動条件 (OfficeAddInSetup) エディターで、前に定義したVSTO 2010 ランタイムの起動条件を確認するを選択し、条件を右クリックして、プロパティ ウィンドウを選択します。In the Launch Conditions(OfficeAddInSetup) editor, select the Verify VSTO 2010 Runtime availability launch condition defined earlier, right-click the condition, and select Properties Window.

  5. 条件プロパティの値をVSTORUNTIMEREDIST >="10.0.30319" または OFFICERUNTIME>="10.0.21022" に変更します。Change the value of the Condition property to VSTORUNTIMEREDIST >="10.0.30319" OR OFFICERUNTIME>="10.0.21022". アドインで必要なランタイムのバージョンによっては、バージョン番号が異なる場合があります。The version numbers maybe different for you depending on the versions of the runtime that your Add-in requires.

    起動条件のプロパティ ウィンドウのスクリーンショット

    図 9: Redist または Office の起動条件を使用してランタイムの可用性を確認するプロパティウィンドウFigure 9: Properties Windows for the Verify Runtime Availability through Redist or Office launch condition

アドインが .NET Framework 4 以降を対象とする場合、参照されているプライマリ相互運用機能アセンブリ (PIA) 内の型を VSTO アセンブリに埋め込むことができます。If an Add-in targets .NET Framework 4, or newer, the Types inside the Primary Interop Assemblies (PIA), that are referenced, can be embedded into the VSTO assembly.

次の手順を実行して、相互運用機能の種類がアドインに埋め込まれるかどうかを確認するには、次の手順を実行します。To check if the Interop Types will be embedded in your Add-in by performing the following steps:

  1. ソリューション エクスプローラーで [参照] ノードを展開するExpand the References Node in Solution Explorer
  2. PIA 参照の 1 つを選択します。Select one of the PIA references, for example, Office.
  3. F4 キーを押すか、[アセンブリ] コンテキスト メニューから [プロパティ] を選択して、プロパティ ウィンドウを表示します。View the properties windows by hitting F4 or selecting Properties from the Assemblies context menu.
  4. プロパティの "相互運用機能型の埋め込み" の値を確認します。Check the value of the property Embed Interop Types.

値がTrueに設定されている場合は、型が埋め込まれているので、セットアップ プロジェクトをビルドするには」 セクションに進むことができます。If the value is set to True, then the Types are being embedded and you can skip down to the To build the setup project section.

詳細については、「型の等価性」および「埋め込み相互運用型」を参照してください。For more information, see Type Equivalence and Embedded Interop Types

Office PIA 用に起動条件を検出するように構成するにはTo configure launch conditions to detect that for Office PIAs

  1. 起動条件 (OfficeAddInSetup) エディターで、ターゲットコンピューターの要件を右クリックし 、Windows インストーラーの起動条件の追加] をクリックします。In the Launch Conditions(OfficeAddInSetup) editor, right-click Requirements on Target Machine, and then click Add Windows Installer Launch Condition. この起動条件は、特定のコンポーネント ID を検索して Office PIA を検索します。This launch condition searches for an Office PIA by searching for the specific component ID.

  2. [Component1 の検索]を右クリックし、[プロパティ]ウィンドウをクリックして、起動条件のプロパティを表示します。Right-click Search for Component1 and click Properties Window to show the properties of the launch condition.

  3. [プロパティ] ウィンドウで、次のプロパティを設定します。In the Properties Window, set these properties:

    1. (名前) プロパティの値をOffice 共有 PIA の検索に変更するChange the value of the (Name) property to Search for Office Shared PIA
    2. 使用している Officeコンポーネントのコンポーネント IDの値を [コンポーネント ID] に変更します。Change the value of the ComponentID to Component Id for the Office component you're using. コンポーネント ID のリストは 、{64E2917E-AA13-4CA4-BFFE-EA6EDA3AF4} など、次の表で確認できます。You can find the list of Component Ids in the table below, for example {64E2917E-AA13-4CA4-BFFE-EA6EDA3AFCB4}.
    3. プロパティの値を [HASSHAREDPIA] に変更します。Change the value of the Property property to HASSHAREDPIA.
  4. 起動条件 (OfficeAddInSetup) エディターで、条件1を右クリックし、プロパティ ウィンドウをクリックして起動条件のプロパティを表示します。In the Launch Conditions(OfficeAddInSetup) editor, right-click Condition1 and click Properties Window to show the properties of the launch condition.

  5. Condition1のこれらのプロパティを変更します。Change these properties of Condition1:

    1. (名前) を 「Office 共有 PIA の可用性を確認する」に変更します。Change the (Name) to Verify Office Shared PIA availability.
    2. 条件[HASSHAREDPIA] に変更します。Change the Condition to HASSHAREDPIA.
    3. インストール Url を空白のままにします。Leave InstallUrl blank.
    4. ExcelMessage****との対話に必要なコンポーネントをメッセージに変更することはできません。setup.exe を実行してくださいChange the Message to A required component for interacting with Excel is not available. Please run setup.exe.

    Office 共有 PIA の起動条件の確認の [プロパティ] ウィンドウのスクリーンショット

    図 10: Office 共有 PIA 起動状態の確認の [プロパティ] ウィンドウFigure 10: Properties Window for the Verify Office Shared PIA launch condition

Office のプライマリ相互運用機能アセンブリのコンポーネント IDComponent IDs of the Primary Interop Assemblies for Microsoft Office

プライマリ相互運用機能アセンブリPrimary interop assembly Office 2010Office 2010 Office 2013Office 2013 オフィス 2013 (64 ビット)Office 2013 (64-bit) Office 2016Office 2016 オフィス 2016 (64 ビット)Office 2016 (64-bit)
ExcelExcel {EA7564AC-C67D-4868-BE5C-26E4FC2223FF}{EA7564AC-C67D-4868-BE5C-26E4FC2223FF} {C8A65ABE-3270-4FD7-B854-50C8082C8F39}{C8A65ABE-3270-4FD7-B854-50C8082C8F39} {E3BD1151-B9CA-4D45-A77E-51A6E0ED322A}{E3BD1151-B9CA-4D45-A77E-51A6E0ED322A} C4ACE6DB-AA99-401F-8BE6-8784BD09F003}C4ACE6DB-AA99-401F-8BE6-8784BD09F003} {C4ACE6DB-AA99-401F-8BE6-8784BD09F003}{C4ACE6DB-AA99-401F-8BE6-8784BD09F003}
InfoPathInfoPath {4153F732-D670-4E44-8AB7-500F2B576BDA}{4153F732-D670-4E44-8AB7-500F2B576BDA} {0F825A16-25B2-4771-A497-FC8AF3B355D8}{0F825A16-25B2-4771-A497-FC8AF3B355D8} {C5BBD36E-B320-47EF-A512-556B99CB7E41}{C5BBD36E-B320-47EF-A512-556B99CB7E41} - -
OutlookOutlook {1D844339-3DAE-413E-BC13-62D6A52816B2}{1D844339-3DAE-413E-BC13-62D6A52816B2} {F9F828D5-9F0B-46F9-9E3E-9C59F3C5E136}{F9F828D5-9F0B-46F9-9E3E-9C59F3C5E136} {7824A03F-28CC-4371-BC54-93D15EFC1E7F}{7824A03F-28CC-4371-BC54-93D15EFC1E7F} {7C6D92EF-7B45-46E5-8670-819663220E4E}{7C6D92EF-7B45-46E5-8670-819663220E4E} {7C6D92EF-7B45-46E5-8670-819663220E4E}{7C6D92EF-7B45-46E5-8670-819663220E4E}
PowerPointPowerPoint {EECBA6B8-3A62-44AD-99EB-8666265466F9}{EECBA6B8-3A62-44AD-99EB-8666265466F9} {813139AD-6DAB-4DDD-8C6D-0CA30D07B41}{813139AD-6DAB-4DDD-8C6D-0CA30D073B41} {05758318-BCFD-4288-AD8D-81185841C235}{05758318-BCFD-4288-AD8D-81185841C235} {E0A76492-0FD5-4EC2-8570-AE1BAA61DC88}{E0A76492-0FD5-4EC2-8570-AE1BAA61DC88} {E0A76492-0FD5-4EC2-8570-AE1BAA61DC88}{E0A76492-0FD5-4EC2-8570-AE1BAA61DC88}
VisioVisio {3EA123B5-6316-452E-9D51-A489E06E2347}{3EA123B5-6316-452E-9D51-A489E06E2347} {C1713368-12A8-41F1-ACA1-934B01AD6EEB}{C1713368-12A8-41F1-ACA1-934B01AD6EEB} {2CC0B221-22D2-4C15-A9FB-DE818E51AF75}{2CC0B221-22D2-4C15-A9FB-DE818E51AF75} {2D4540EC-2C88-4C28-AE88-2614B5460648}{2D4540EC-2C88-4C28-AE88-2614B5460648} {2D4540EC-2C88-4C28-AE88-2614B5460648}{2D4540EC-2C88-4C28-AE88-2614B5460648}
WordWord {8B74A499-37F8-4DEA-B5A0-D72FC501CEFA}{8B74A499-37F8-4DEA-B5A0-D72FC501CEFA} {9FE736B7-B1EE-410C-8D07-082891C3DAC8}{9FE736B7-B1EE-410C-8D07-082891C3DAC8} {13C07AF5-B206-4A48-BB5B-B8022333E3CA}{13C07AF5-B206-4A48-BB5B-B8022333E3CA} {DC5CCACD-A7AC-4FD3-9F70-9454B5DE5161}{DC5CCACD-A7AC-4FD3-9F70-9454B5DE5161} {DC5CCACD-A7AC-4FD3-9F70-9454B5DE5161}{DC5CCACD-A7AC-4FD3-9F70-9454B5DE5161}
マイクロソフト フォーム 2.0Microsoft Forms 2.0 {B2279272-3FD2-434D-B94E-E4E0F8561AC4}{B2279272-3FD2-434D-B94E-E4E0F8561AC4} {B2279272-3FD2-434D-B94E-E4E0F8561AC4}{B2279272-3FD2-434D-B94E-E4E0F8561AC4} {A5A30117-2D2A-4C5C-B3C8-8897AC32C2AC}{A5A30117-2D2A-4C5C-B3C8-8897AC32C2AC} - -
Microsoft GraphMicrosoft Graph {011B9112-EBB1-4A6C-86CB-C2FDC9EA7B0E}{011B9112-EBB1-4A6C-86CB-C2FDC9EA7B0E} {52DA4B37-B8EB-4B7F-89C1-824654CE4C70}{52DA4B37-B8EB-4B7F-89C1-824654CE4C70} {24706F33-F0CE-4EB4-BC91-9E935394F510}{24706F33-F0CE-4EB4-BC91-9E935394F510} - -
スマート タグSmart Tag {7102C98C-EF47-4F04-A227-FE33650BF954}{7102C98C-EF47-4F04-A227-FE33650BF954} {487A7921-EB3A-4262-BB5B-A5736B732486}{487A7921-EB3A-4262-BB5B-A5736B732486} {74EFC1F9-747D-4867-B951-EFCF29F51AF7}{74EFC1F9-747D-4867-B951-EFCF29F51AF7} - -
オフィス共有Office Shared {64E2917E-AA13-4CA4-BFFE-EA6EDA3AFCB4}{64E2917E-AA13-4CA4-BFFE-EA6EDA3AFCB4} {6A174BDB-0049-4D1C-86EF-3114CB0C4C4E}{6A174BDB-0049-4D1C-86EF-3114CB0C4C4E} {76601EBB-44A7-49EE-8DE3-7B7B9D7EBB05}{76601EBB-44A7-49EE-8DE3-7B7B9D7EBB05} {625F5772-C1B3-497E-8ABE-7254EDB00506}{625F5772-C1B3-497E-8ABE-7254EDB00506} {625F5772-C1B3-497E-8ABE-7254EDB00506}{625F5772-C1B3-497E-8ABE-7254EDB00506}
ProjectProject {957A4EC0-E67B-4E86-A383-6AF7270B216A}{957A4EC0-E67B-4E86-A383-6AF7270B216A} {1C50E422-24FA-44A9-A120-E88280C8C341}{1C50E422-24FA-44A9-A120-E88280C8C341} {706D7F44-8231-489D-9B25-3025ADE9F114}{706D7F44-8231-489D-9B25-3025ADE9F114} {107BCD9A-F1DC-4004-A444-33706FC10058}{107BCD9A-F1DC-4004-A444-33706FC10058} {107BCD9A-F1DC-4004-A444-33706FC10058}{107BCD9A-F1DC-4004-A444-33706FC10058}

最終起動条件のスクリーンショット

図 11: 最終起動条件Figure 11: Final launch conditions

ExcelAddIn インストールの起動条件をさらに詳細に設定できます。You can further refine the launch conditions for the ExcelAddIn installation. たとえば、実際のターゲット Office アプリケーションがインストールされているかどうかを確認すると便利です。For instance, it maybe useful to check if the actual target Office application is installed.

セットアップ プロジェクトをビルドするにはTo build the setup project

  1. ソリューションエクスプローラ、OfficeAddInSetupプロジェクトを右クリックし、[ビルド] をクリックします。In the Solution Explorer, right-click the OfficeAddInSetup project and click Build.
  2. Windows エクスプローラを使用して 、OfficeAddInSetupプロジェクトの出力ディレクトリに移動し、選択したビルド構成に応じて[リリース]または[デバッグ]フォルダに移動します。Using Windows Explorer, navigate to the output directory of the OfficeAddInSetup project and go to the Release or Debug folder, depending on the selected build configuration. フォルダ内のすべてのファイルを、ユーザーがアクセスできる場所にコピーします。Copy all files from the folder to a location that users can access.

セットアップをテストするにはTo Test the ExcelAddIn setup

  1. コピー先に移動しますNavigate to the location where you copied OfficeAddInSetup to.
  2. setup.exe ファイルをダブルクリックして 、OfficeAddInSetupアドインをインストールします。Double-click on the setup.exe file to install the OfficeAddInSetup add-in. 表示されたソフトウェア ライセンス条項に同意し、セットアップ ウィザードを完了して、ユーザー のコンピュータにアドインをインストールします。Accept any Software License Terms that appear, and complete the setup wizard to install the add-in on the user computer.

Excel Office ソリューションは、セットアップ中に指定された場所からインストールおよび実行する必要があります。The Excel Office solution should install and run from the location specified during setup.

ドキュメント レベルのソリューションに関するその他の要件Additional Requirements for Document-level Solutions

ドキュメント レベルのソリューションを展開するには、Windows インストーラ セットアップ プロジェクトでいくつかの異なる構成手順が必要です。Deploying document-level solutions require a few different configuration steps in the Windows Installer setup project.

ドキュメント レベルのソリューションを展開するために必要な基本的な手順の一覧を次に示します。Here's a list of basic steps required to deploy a document-level solution:

  • Visual Studio セットアップ プロジェクトを作成します。Create the Visual Studio Setup Project.
  • ドキュメント レベルのソリューションのプライマリ出力を追加します。Add the primary output of your document-level solution. プライマリ出力には、Microsoft Office ドキュメントも含まれます。The primary output also includes the Microsoft Office document.
  • 展開マニフェストとアプリケーション マニフェストをルーズ ファイルとして追加します。Add the deployment and application manifests as loose files.
  • 依存コンポーネントをインストーラー パッケージから除外します (ユーティリティ アセンブリを除く)。Exclude the dependent components from the installer package (except for any utilities assemblies).
  • 前提条件パッケージを構成します。Configure prerequisite packages.
  • 起動条件を設定します。Configure launch conditions.
  • セットアップ プロジェクトをビルドし、結果を配置場所にコピーします。Build the setup project and copy the results to the deployment location.
  • セットアップを実行して、ユーザー コンピューターにドキュメント レベルのソリューションを展開します。Deploy the document-level solution on the user computer by executing the setup.
  • 必要に応じて、カスタム ドキュメント プロパティを更新します。Update the custom document properties if needed.

配置されたドキュメントの場所の変更Changing the Location of the Deployed Document

Office ドキュメント内のプロパティは、ドキュメント レベルのソリューションを検索するために使用されます。Properties inside an Office document are used to locate document level solutions. ドキュメントが VSTO アセンブリと同じフォルダーにインストールされている場合、変更は不要です。If the document is installed to the same folder as the VSTO assembly, no changes are required. ただし、別のフォルダーにインストールされている場合は、これらのプロパティをセットアップ中に更新する必要があります。However, if it's installed to different folder, these properties will need to be updated during the setup.

これらのドキュメント プロパティの詳細については、「カスタム ドキュメント プロパティの概要」を参照してください。For more information about these document properties, see Custom Document Properties Overview.

これらのプロパティを変更するには、セットアップ中にカスタム アクションを使用する必要があります。To change these properties, you need to use a custom action during the setup.

次の例では、ExcelWorkbookProject という名前のドキュメント レベルのソリューションと、ExcelWorkbookSetup という名前のセットアップ プロジェクトを使用しています。The following example uses a document-level solution called ExcelWorkbookProject and a setup project called ExcelWorkbookSetup. ExcelWorkbookSetup プロジェクトは、レジストリ キーを設定する以外は、上記と同じ手順を使用して構成されます。The ExcelWorkbookSetup project is configured by using the same steps outlined above, except for setting the registry keys.

カスタム アクション プロジェクトを Visual Studio ソリューションに追加するにはTo add the custom action project to your Visual Studio solution

  1. ソリューション エクスプローラーでOffice ドキュメントの展開プロジェクトを右クリックして、ソリューションに新しい .NET コンソール プロジェクトを追加します。Add a new .NET Console project to the solution by right clicking the Office Document Deployment Project in the Solution Explorer

  2. [追加] を展開し、[新しいプロジェクト] をクリックします。Expand Add and click New Project.

  3. コンソール アプリケーション テンプレートを選択し、プロジェクトに名前を付けるカスタマイズカスタム アクションSelect the Console App template and name the project AddCustomizationCustomAction.

    ソリューション エクスプローラーのスクリーンショット - カスタマイズカスタム アクションの追加

    図 12: ソリューション エクスプローラー - カスタマイズの追加カスタム アクションFigure 12: Solution Explorer - AddCustomizationCustomAction

  4. 次のアセンブリに参照を追加します。Add a Reference to these assemblies:

    1. System.ComponentModelSystem.ComponentModel
    2. System.Configuration.InstallSystem.Configuration.Install
    3. アプリケーションMicrosoft.VisualStudio.Tools.Applications
    4. Microsoft.VisualStudio.Tools.Applications.ServerDocumentMicrosoft.VisualStudio.Tools.Applications.ServerDocument
  5. このコードをProgram.csまたは Program.vb にコピーしますCopy this code into Program.cs or Program.vb

    using System;
    using System.IO;
    using System.Collections;
    using System.ComponentModel;
    using System.Configuration.Install;
    using Microsoft.VisualStudio.Tools.Applications;
    using Microsoft.VisualStudio.Tools.Applications.Runtime;

    namespace AddCustomizationCustomAction
    {
        [RunInstaller(true)]
        public class AddCustomizations : Installer
        {
            public AddCustomizations() : base() { }

            public override void Install(IDictionary savedState)
            {
                base.Install(savedState);

                //Get the CustomActionData Parameters
                string documentLocation = Context.Parameters.ContainsKey("documentLocation") ? Context.Parameters["documentLocation"] : String.Empty;
                string assemblyLocation = Context.Parameters.ContainsKey("assemblyLocation") ? Context.Parameters["assemblyLocation"] : String.Empty;
                string deploymentManifestLocation = Context.Parameters.ContainsKey("deploymentManifestLocation") ? Context.Parameters["deploymentManifestLocation"] : String.Empty;
                Guid solutionID = Context.Parameters.ContainsKey("solutionID") ? new Guid(Context.Parameters["solutionID"]) : new Guid();

                string newDocLocation = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Path.GetFileName(documentLocation));

                try
                {
                    //Move the file and set the Customizations
                    if (Uri.TryCreate(deploymentManifestLocation, UriKind.Absolute, out Uri docManifestLocationUri))
                    {
                        File.Move(documentLocation, newDocLocation);
                        ServerDocument.RemoveCustomization(newDocLocation);
                        ServerDocument.AddCustomization(newDocLocation, assemblyLocation,
                                                        solutionID, docManifestLocationUri,
                                                        true, out string[] nonpublicCachedDataMembers);
                    }
                    else
                    {
                        LogMessage("The document could not be customized.");
                    }
                }
                catch (ArgumentException)
                {
                    LogMessage("The document could not be customized.");
                }
                catch (DocumentNotCustomizedException)
                {
                    LogMessage("The document could not be customized.");
                }
                catch (InvalidOperationException)
                {
                    LogMessage("The customization could not be removed.");
                }
                catch (IOException)
                {
                    LogMessage("The document does not exist or is read-only.");
                }
            }

            public override void Rollback(IDictionary savedState)
            {
                base.Rollback(savedState);
                DeleteDocument();
            }
            public override void Uninstall(IDictionary savedState)
            {
                base.Uninstall(savedState);
                DeleteDocument();
            }
            private void DeleteDocument()
            {
                string documentLocation = Context.Parameters.ContainsKey("documentLocation") ? Context.Parameters["documentLocation"] : String.Empty;

                try
                {
                    File.Delete(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Path.GetFileName(documentLocation)));
                }
                catch (Exception)
                {
                    LogMessage("The document doesn't exist or is read-only.");
                }
            }
            private void LogMessage(string Message)
            {
                if (Context.Parameters.ContainsKey("LogFile"))
                {
                    Context.LogMessage(Message);
                }
            }

            static void Main() { }
            }
    }

カスタマイズをドキュメントに追加するには、VSTO ドキュメント レベルのソリューションのソリューション ID が必要です。To add the customization to the document, you need to have the solution ID of your VSTO document-level solution. この値は、Visual Studio プロジェクト ファイルから取得されます。This value is retrieved from the Visual Studio project file.

ソリューション ID を取得するにはTo retrieve the solution ID

  1. [ビルド] メニューの [ソリューションのビルド] をクリックしてドキュメント レベルのソリューションをビルドし、ソリューション ID プロパティをプロジェクト ファイルに追加します。On the Build menu, click Build Solution to build the document-level solution and add the solution ID property to the project file.

  2. ソリューションエクスプローラーで、ドキュメント レベルのプロジェクトExcelWorkbookProjectを右クリックします。In the Solution Explorer, right-click the document-level project ExcelWorkbookProject

  3. プロジェクト ファイルにアクセスするには、プロジェクトのアンロードをクリックします。Click UnloadProject to access the project file from inside Visual Studio.

    ソリューション エクスプローラーのアンロード Excel ドキュメント ソリューションのスクリーンショット

    図 13: Excel ドキュメント ソリューションのアンロードFigure 13: Unloading Excel Document Solution

  4. ソリューションエクスプローラー、Excel ブック プロジェクトを右クリックし、[編集] をクリックします。In the Solution Explorer, right-click ExcelWorkbookProject and click EditExcelWorkbookProject.vbproj or Edit ExcelWorkbookProject.csproj.

  5. エディターでプロパティグループ要素内のソリューション ID要素を見つけます。In the ExcelWorkbookProject editor, locate the SolutionID element inside the PropertyGroup element.

  6. この要素の GUID 値をコピーします。Copy the GUID value of this element.

    ソリューション ID の取得

    図 14: ソリューション ID の取得Figure 14: Retrieving the SolutionID

  7. ソリューションエクスプローラー、ExcelWorkbookProjectを右クリックし、[プロジェクトの再読み込み] をクリックします。In the Solution Explorer, right-click ExcelWorkbookProject and click Reload Project.

  8. 表示されるダイアログ ボックスで [はい] をクリックして 、ExcelWorkbookProjectエディターを閉じます。Click Yes in the dialog box that appears to close the ExcelWorkbookProject editor.

  9. ソリューション IDは、カスタム 動作のインストールで使用されます。The Solution ID will be used in the Install Custom Action.

最後の手順では、インストールアンインストールの手順のカスタム アクションを構成します。The last step is to configure the custom action for the Install and Uninstall steps.

セットアップ プロジェクトを構成するにはTo configure the setup project

  1. ソリューションエクスプローラ、[ExcelWorkbookSetup] を右クリックし、[追加] を展開して [プロジェクト出力] をクリックします。In the Solution Explorer, right-click ExcelWorkbookSetup, expand Add and click Project Output.

  2. [プロジェクト出力グループの追加] ダイアログ ボックスの [プロジェクト] ボックスの一覧で、[カスタマイズの追加アクション] をクリックします。In the Add Project Output Group dialog box, in the Project list, click AddCustomizationCustomAction.

  3. [プライマリ出力]を選択し 、[OK]をクリックしてダイアログ ボックスを閉じ、カスタム アクションを含むアセンブリをセットアップ プロジェクトに追加します。Select Primary Output and click OK to close the dialog box and add the assembly containing the custom action to the setup project.

    ![ドキュメント マニフェストのカスタム アクションのスクリーンショット - プロジェクト出力グループの追加] ウィンドウ](media/setup-project-figure-18.jpg)

    図 15: ドキュメント マニフェストのカスタム アクション - プロジェクト出力グループの追加Figure 15: Document Manifest Custom Action - Add Project Output Group

  4. ソリューションエクスプローラ、ExcelWorkbookSetupを右クリックします。In the Solution Explorer, right-click ExcelWorkbookSetup.

  5. [表示] を展開し、[カスタム動作] をクリックします。Expand View and click Custom Actions.

  6. カスタム動作 (ExcelWorkbookSetup) エディターで、[カスタム動作] を右クリックし、[カスタム動作の追加] をクリックします。In the Custom Actions(ExcelWorkbookSetup) editor, right-click Custom Actions and click Add Custom Action.

  7. [プロジェクトの項目の選択] ダイアログ ボックスの [ファイルの場所] ボックスの一覧で、[アプリケーション フォルダ] をクリックします。In the Select Item in Project dialog box, in the Look In list, click Application Folder. **カスタマイズのカスタムアクションの追加から[プライマリ出力**]を選択し 、[OK]をクリックしてカスタムアクションをインストールステップに追加します。Select Primary Output from AddCustomizationCustomAction(active) and click OK to add the custom action to the Install step.

  8. [インストール] ノードで、[カスタマイズのカスタマイズアクション (アクティブ) のプライマリ出力] を右クリックし、[名前の変更] をクリックします。Under the Install node, right-click Primary output from AddCustomizationCustomAction(Active), and click Rename. カスタム アクションに [マイ ドキュメントにドキュメントをコピーしてカスタマイズを添付] という名前を付けますName the custom action Copy document to My Documents and attach customization.

  9. [アンインストール]ノードで、[カスタマイズのカスタマイズアクションの追加( アクティブ)] の [プライマリ出力] を右クリックし、[名前の変更] をクリックします。Under the Uninstall node, right-click Primary output from AddCustomizationCustomAction(Active) and click Rename. カスタム アクションに [ドキュメント フォルダからドキュメントを削除] という名前を付けますName the custom action Remove document from the Documents folder.

    [ドキュメント マニフェストのカスタム アクション] ウィンドウのスクリーンショット

    図 16: ドキュメント マニフェストのカスタム アクションFigure 16: Document Manifest Custom Actions

  10. カスタム動作 (ExcelWorkbookSetup) エディターで、[マイ ドキュメントにドキュメントをコピーしてカスタマイズを添付する] を右クリックし、[プロパティ ウィンドウ] をクリックします。In the Custom Actions(ExcelWorkbookSetup) editor, right-click Copy document to My Documents and attach customization and click Properties Window.

  11. [CustomActionData プロパティ] ウィンドウで、カスタマイズ DLL の場所、配置マニフェスト、および Microsoft Office ドキュメントの場所を入力します。In the CustomActionData Properties window, enter the location of the customization DLL, the deployment manifest, and the location of the Microsoft Office document. ソリューション ID も必要です。The SolutionID is also needed.

  12. セットアップ エラーをファイルに記録する場合は、LogFile パラメータを指定します。If you wish to log any setup errors to a file, include a LogFile parameter. ss

    /assemblyLocation="[INSTALLDIR]ExcelWorkbookProject.dll" /deploymentManifestLocation="[INSTALLDIR]ExcelWorkbookProject.vsto" /documentLocation="[INSTALLDIR]ExcelWorkbookProject.xlsx" /solutionID="Your Solution ID" /LogFile="[TARGETDIR]Setup.log"
    

    [マイ ドキュメント プロパティ] ウィンドウにドキュメントをコピーするカスタム アクションのスクリーンショット

    図 17: ドキュメントをマイ ドキュメントにコピーするカスタム アクションFigure 17: Custom Action to Copy Document to My Documents

  13. アンインストールのカスタム アクションにはドキュメントの名前が必要です。 CustomActionDataThe Custom Action for Uninstall needs the name of the document, you can provide that by using the same documentLocation parameter in the CustomActionData

    /documentLocation="[INSTALLDIR]ExcelWorkbookProject.xlsx"
    
  14. プロジェクトをコンパイルして配置しますCompile and deploy the ExcelWorkbookSetup project.

  15. [マイ ドキュメント] フォルダーを検索し、ExcelWorkbookProject.xlsx ファイルを開きます。Look in My Documents folder, and open the ExcelWorkbookProject.xlsx file.

その他のリソースAdditional Resources

方法 : Office ランタイム用の Visual Studio ツールをインストールするHow to: Install the Visual Studio Tools for Office Runtime

オフィス プライマリ相互運用機能アセンブリOffice Primary Interop Assemblies

VSTO アドインのレジストリ エントリRegistry entries for VSTO Add-ins

Custom Document Properties OverviewCustom Document Properties Overview

Windows レジストリでのフォーム領域の指定Specifying Form Regions in the Windows Registry

Granting Trust to DocumentsGranting Trust to Documents

作成者についてAbout the Authors

Wouter van Vugt は、Office オープン XML テクノロジを持つマイクロソフト MVP であり、独立したコンサルタントであり、SharePoint、マイクロソフト オフィス、および関連する .NET テクノロジを使用して Office ビジネス アプリケーション (OBA) を作成することに重点を置いています。Wouter van Vugt is a Microsoft MVP with Office Open XML technologies and an independent consultant focusing on creating Office Business Applications (OBAs) with SharePoint, Microsoft Office, and related .NET technologies. Wouter は MSDN などの開発者コミュニティ サイトに頻繁に貢献していますWouter is a frequent contributor to developer community sites such as MSDN. 彼はいくつかのホワイトペーパーや記事を出版し、Open XML: 説明された電子書籍というタイトルの本を掲載しています。He has published several white papers and articles as well a book available on line titled Open XML: Explained e-book. Wouterは、さまざまなチャネルを通じて最先端の技術コンテンツを提供することに焦点を当てたオランダのCode-Counselの創設者です。Wouter is the founder of Code-Counsel, a Dutch company focusing on delivering cutting-edge technical content through a variety of channels. あなたは彼のブログを読んでWouterについての詳細を知ることができます。You can find out more about Wouter by reading his blog.

テッド・パティソンはSharePoint MVP、著者、トレーナー、テッド・パティソン・グループの創設者です。Ted Pattison is a SharePoint MVP, author, trainer and the founder of Ted Pattison Group. 2005 年秋、テッドはマイクロソフトの開発者プラットフォーム伝道グループに採用され、Windows SharePoint サービス 3.0 および Microsoft Office SharePoint Server 2007 のアセンド開発者トレーニング カリキュラムを作成しました。In the fall of 2005, Ted was hired by Microsoft's Developer Platform Evangelism group to author the Ascend developer training curriculum for Windows SharePoint Services 3.0 and Microsoft Office SharePoint Server 2007. それ以来、Ted は SharePoint 2007 テクノロジに関するプロフェッショナルな開発者の教育に専念してきました。Since that time, Ted has been entirely focused on educating professional developers on SharePoint 2007 technologies. テッドは、ビジネス ソリューションを構築するための開発プラットフォームとして SharePoint を使用する方法に焦点を当てた「Windows SharePoint サービス内 3.0」というタイトルのマイクロソフト プレスの本を書き終えました。Ted has finished writing a book for Microsoft Press titled Inside Windows SharePoint Services 3.0 that focuses on how to use SharePoint as a development platform for building business solutions. また、MSDN マガジンの開発者向けのコラム「オフィススペース」も執筆しています。Ted also writes a developer-focused column for MSDN Magazine titled Office Space.