次の方法で共有


同時実行インストール

入れ子になったインストールとも呼ばれる同時実行インストールは、Windows インストーラーの非推奨の機能です。 同時インストールと共にインストールされたアプリケーションは、お客様が正しくサービスを提供するのが難しいため、最終的に失敗する可能性があります。 同時インストールを使用して、一般にリリースされる製品をインストールしないでください。 同時インストールでは、一般リリースを意図していないアプリケーションのインストールに使用する場合、制御された企業環境での適用性が制限される可能性があります。 同時インストールのドキュメントは、パブリック配布用ではないアプリケーションで同時インストールを使用するパッケージ作成者向けに提供されています。

同時インストール アクションでは、現在実行中のインストール中に別の Windows インストーラー パッケージがインストールされます。 同時実行インストールは、同時実行インストール アクションを CustomAction テーブル 作成し、このカスタム アクションをシーケンス テーブルにスケジュールすることでパッケージに追加されます。 CustomAction テーブルの [ターゲット] フィールドには、同時インストールで使用されるパブリック プロパティ設定の文字列が含まれています。 CustomAction テーブルの [ソース] フィールドは、同時実行パッケージを識別します。 同時インストール アクションでは、現在のアプリケーションのインストール パッケージによってインストールされたアプリケーションのみを再インストールまたは削除できます。

同時実行インストール アクションの種類は、CustomAction テーブルの [種類] フィールドで指定します。 カスタム アクションの種類に応じて、同時実行アプリケーションのパッケージは、メイン パッケージのサブストーリ内に、プロパティで指定された場所にあるファイルとして、またはユーザーのコンピューター上のアドバタイズされたアプリケーションとして存在できます。 次の種類のカスタム アクションは、同時インストールを実行します。

カスタム アクションの種類 形容
カスタム アクションの種類 7 インストール パッケージに存在する製品の同時インストール。
カスタム アクション タイプ 23 現在のソース ツリー内でのインストーラー パッケージの同時インストール。
カスタム アクションの種類 39 アドバタイズされたインストーラー パッケージの同時インストール。

 

同時インストールでは、メイン インストールと同じユーザー インターフェイスとログ設定が共有されます。

InstallInitialize アクション と installFinalize アクション メイン インストールのアクション シーケンスの の間に、同時実行インストール アクションを配置する必要があります。 メイン インストールのロールバック時に、インストーラーは同時インストールもロールバックします。 同時実行インストール アクション 遅延実行 を使用する必要はないため、インストーラーは同時実行インストールとメイン インストールからのロールバック情報を組み合わせたものです。 ロールバックのインストール時に、すべての変更が元に戻されます。

同時実行インストール アクションの戻り値は、他のカスタム アクションの戻り値と同じです。 「カスタム アクションの戻り値 」を参照してください。

システムの自動再起動を指定したり、ユーザーに再起動を要求したりする標準またはカスタムアクションは、同時インストール内から再起動または要求を実行することもできます。

インストーラーは、同時インストールを開始すると、同時インストールが完了し、メイン インストールを続行する前に、他のすべてのインストールをロックアウトします。 インストーラーは、同期カスタム アクションとしてのみ同時実行インストールを実行できます。 「同期および非同期のカスタム アクション する」を参照してください。 カスタム アクションの戻り値の処理オプション で説明されているオプション フラグは、なし (+0) または msidbCustomActionTypeContinue (+64) に設定する必要があります。

同時実行インストール アクションでは、ローカルで実行するアプリケーション、ソースから実行するアプリケーション、再インストールするアプリケーション、または通常のインストールに MsiInstallProduct を使用する場合と同じ方法で削除できます。 インストールの種類を指定するには、ADDLOCALADDSOURCEREINSTALLまたは REMOVE プロパティを同時インストール アクションに渡します。

同時実行インストール アクションは、2 つのペアで作成できます。1 つのアクションはインストールに使用され、もう 1 つのアクションは同時インストールを削除するために使用されます。 カスタムアクションタイプ7 またはカスタムアクションタイプ23 は、通常、インストールに使用されます。 カスタム アクション タイプ 39 は、通常、親製品をアンインストールするときに同時インストールを削除するために使用されます。 CustomAction テーブル の削除ユーザー設定アクションのレコードには、ソース フィールドに製品コード GUID、ターゲット フィールドに "REMOVE=ALL" を含めることができます。 2 つのカスタム アクションは、相互に排他的な条件を持つアクション シーケンス テーブルで作成する必要があります。 たとえば、製品をインストールするユーザー設定アクションの [条件] フィールドに "NOT Installed" を設定し、ユーザー設定アクションによって同時インストールが削除され、[条件] フィールドに REMOVE="ALL" が含まれる場合があります。

パッケージに対してコストのクエリを実行する方法はありません。 これにより、同時インストールのコストが難しくなります。 同時実行インストールに関連付けられているコンポーネントのフォルダーと最悪の場合のコストを示すには、ReserveCost テーブル に行を追加する必要があります。

同時実行インストール アクションで使用できるカスタム アクションの戻り処理オプション は、なし (+0) または msidbCustomActionTypeContinue (+64) のみです。

親インストールでは、同時インストール アクションとして独自のパッケージを呼び出すことはできません。

コンピューターごとのインストールでユーザーごとの同時インストールを実行しようとすると、インストーラーは既定で親インストールをユーザーごとに登録します。 これにより、インストーラーがユーザーごとに実際に登録されるときに、コンピューターごとにアプリケーションをアンインストールしようとするため、インストーラーによってアプリケーションが誤って削除される可能性があります。 同時実行インストールの状態を強制的に親インストールの状態を追跡するには、CustomAction テーブルのターゲット列に「ALLUSERS="[ALLUSERS]」と入力。 この場合、親がマシン単位の場合、同時実行インストールはマシンごとであり、親がユーザー単位の場合は同時実行インストールがユーザー単位になります。

同時インストールを作成する場合、開発者は次の警告に注意する必要があります。

  • 同時インストールでコンポーネントを共有することはできません。
  • 管理インストールには、同時インストールも含めることができません。
  • 修正プログラムの適用とアップグレードは、同時インストールでは機能しない場合があります。
  • インストーラーでは、同時インストールのコストが適切に発生しない可能性があります。
  • 統合 ProgressBars は、同時インストールでは使用できません。
  • アドバタイズされるリソースは、同時インストールではインストールできません。
  • アプリケーションの同時インストールを実行するパッケージでは、親製品をアンインストールするときに、同時実行アプリケーションもアンインストールする必要があります。

パッケージが同時実行インストールとしてインストールされないようにするには、次のいずれかの条件ステートメントを LaunchCondition テーブルに追加します。 これにより、別のインストールによって実行される同時実行インストール アクションによってパッケージがインストールされなくなります。 これにより、RemoveExistingProducts アクションによってパッケージが削除されるのを防ぐことはありません。 ParentOriginalDatabaseプロパティと ParentProductCodeプロパティも参照してください。

"Not ParentProductCode"
"Not ParentOriginalDatabase"