入れ子になった .msi パッケージを作成する方法

サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。
概要
インストール アクションを入れ子にすると、現在実行しているインストール中に、別の Windows インストーラ パッケージがインストールされます。この資料では、入れ子になったインストールを実行するパッケージを作成する方法について説明します。
詳細
入れ子になったインストールをパッケージに追加するには、CustomAction テーブルで入れ子になったインストール アクションを作成し、このカスタム アクションをシーケンス テーブルのスケジュールに組み込みます。CustomAction テーブルの Target ボックスには、入れ子になったインストールで使用されるパブリック プロパティ設定の文字列が含まれます。CustomAction テーブルの Source ボックスには、入れ子になったパッケージが表示されます。入れ子になったインストール アクションで再インストールまたは削除が可能なアプリケーションは、現在のアプリケーションのインストール パッケージでインストールされたもののみです。

入れ子になったインストール アクションの種類は、CustomAction テーブルの Type ボックスで指定します。入れ子になったアプリケーションのパッケージは、カスタム アクションの種類に応じ、プロパティで指定した場所のファイルとして、またはユーザー コンピュータ上のアドバタイズされたアプリケーションとしてメイン パッケージの "サブストレージ" に配置できます。
カスタム アクションの種類説明
カスタム アクションの種類 : 7インストーラ パッケージ内にある製品の入れ子になったインストール
カスタム アクションの種類 : 23現在のソース ツリー内にある、インストーラ パッケージの入れ子になったインストール
カスタム アクションの種類 : 39アドバタイズされたインストーラ パッケージの入れ子になったインストール
以下に、カスタム アクションの種類 7 の入れ子になったインストール カスタム アクションの作成方法の例を示します。Visual Studio インストーラでは入れ子になったインストール カスタム アクションを作成できないため、この例では Windows Installer SDK に含まれている Orca というツールを使用して、.msi パッケージを編集します (Orca の詳細については、「関連情報」を参照してください)。入れ子になったインストールには、2 つの .msi パッケージが含まれています。次の例では Basic.msi を親 .msi パッケージとして、Nest.msi を入れ子になった .msi パッケージとして使用します。
  1. Nest.msi パッケージを Basic.msi ファイルの "サブストレージ" として追加するには、Msidb ツールを使用します (このツールは、Windows Installer SDK のパッケージに含まれています)。コマンド ラインは以下のとおりです。
    Msidb -d Basic.msi -r Nest.msi
    このコマンドを実行すると、Nest.msi が Basic.msi ファイルにサブストレージとして追加されます。このコマンドが正常に実行されたことを確認するダイアログ ボックスは表示されませんが、Basic.msi のファイル サイズが大きくなります。

    : Orca の Binary テーブルを使用して、Nest.msi をサブストレージとして追加することはできません。Binary テーブルを経由してファイルを MSI に追加すると、ファイルはサブストレージではなく、バイナリ ストリームとして追加されます。Binary テーブルによって追加されたファイルは、CustomAction テーブルのソース列により参照されません。
  2. Orca を使用して Basic.msi を開きます。CustomAction テーブルを見つけて、カスタム アクションの情報を入力します。入れ子になったパッケージにパブリック プロパティを渡す必要がある場合は、Target ボックスを使用します。カスタム アクションには、インストール用およびアンインストール用の 2 つのアクションがあります (アンインストール用のカスタム アクションは Target に "REMOVE=ALL" が設定されています)。以下に CustomAction テーブルの例を示します。
    ActionTypeSourceTarget
    InstallNest7Nest.msi
    UnInstallNest7Nest.msiREMOVE=ALL
  3. InstallExecuteSequence テーブルに、カスタム アクションをスケジュールします。InstallExecuteSequence テーブルのインストールとアンインストールの両方のアクションに条件ステートメントがあります。条件はインストール (>2) およびアンインストール (<=2) するコンポーネントに関連付けられます。これらのアクションは、機能または別のプロパティに関連付けることもできます。入れ子になったインストールのカスタム アクションは InstallFinalize の前に配置する必要があります。コンポーネントまたは機能を条件として使用する場合、カスタム アクションは CostFinalize の後に配置する必要があります。以下の InstallExecuteSequence の例では、Basic.msi に "Comp_1" というコンポーネントがあり、Comp_1 の状態に基づいて、入れ子になったインストールの条件付けが行われることを想定しています。
    ActionConditionSequence
    InstallNest$Comp_1>23110
    UnInstallNest$Comp_1<=23120
関連情報
関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
255905 Orca データベース エディタを使用して Windows インストーラ ファイルを編集する方法
プロパティ

文書番号:306439 - 最終更新日: 01/24/2006 08:09:14 - リビジョン: 3.0

Microsoft Windows インストーラ 1.1, Microsoft Windows インストーラ 1.2, Microsoft Windows インストーラ 2.0

  • kbhowto KB306439
フィードバック