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

文書翻訳 文書翻訳
文書番号: 306439 - 対象製品
すべて展開する | すべて折りたたむ

概要

インストール アクションを入れ子にすると、現在実行しているインストール中に、別の 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 テーブルの例を示します。
    元に戻す全体を表示する
    Action Type Source Target
    InstallNest 7 Nest.msi
    UnInstallNest 7 Nest.msi REMOVE=ALL
  3. InstallExecuteSequence テーブルに、カスタム アクションをスケジュールします。InstallExecuteSequence テーブルのインストールとアンインストールの両方のアクションに条件ステートメントがあります。条件はインストール (>2) およびアンインストール (<=2) するコンポーネントに関連付けられます。これらのアクションは、機能または別のプロパティに関連付けることもできます。入れ子になったインストールのカスタム アクションは InstallFinalize の前に配置する必要があります。コンポーネントまたは機能を条件として使用する場合、カスタム アクションは CostFinalize の後に配置する必要があります。以下の InstallExecuteSequence の例では、Basic.msi に "Comp_1" というコンポーネントがあり、Comp_1 の状態に基づいて、入れ子になったインストールの条件付けが行われることを想定しています。
    元に戻す全体を表示する
    Action Condition Sequence
    InstallNest $Comp_1>2 3110
    UnInstallNest $Comp_1<=2 3120

関連情報

関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
255905 Orca データベース エディタを使用して Windows インストーラ ファイルを編集する方法

プロパティ

文書番号: 306439 - 最終更新日: 2006年1月24日 - リビジョン: 3.0
この資料は以下の製品について記述したものです。
  • Microsoft Windows インストーラ 1.1
  • Microsoft Windows インストーラ 1.2
  • Microsoft Windows インストーラ 2.0
キーワード:?
kbhowto KB306439
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com