Patching

Microsoft Windows インストーラーを使用してインストールされたアプリケーションは、更新されたインストール パッケージ (.msi ファイル) を再インストールするか、Windows インストーラー パッチ (.msp ファイル) をアプリケーションに適用することでアップグレードできます。

Windows インストーラー パッチ (.msp ファイル) は、アプリケーションの更新プログラムを含む自己完結型パッケージであり、パッチを受け取ることができるアプリケーションのバージョンを記述します。 パッチには、少なくとも 2 つのデータベース変換が含まれており、パッチ パッケージのキャビネット ファイル ストリームに格納されているパッチ ファイルを含めることができます。 Windows インストーラーのパッチ パッケージの各部分の詳細については、「パッチ パッケージ」を参照してください。

更新された製品の完全なインストール パッケージではなく、Windows インストーラーのパッチを提供してアプリケーションにサービスを提供すると、利点があります。 パッチには、ファイル全体を含めたり、ファイルの一部を更新するために必要なファイル ビットのみを含めることができます。 これにより、ユーザーは製品全体のインストール パッケージよりもはるかに小さいアップグレード パッチをダウンロードできます。 パッチを使用した更新プログラムでは、アップグレードを通じてアプリケーションのユーザー カスタマイズを保持できます。

**Windows インストーラー 4.5 以降: **

Windows インストーラー 4.5 以降では、開発者はコンポーネント テーブルmsidbComponentAttributesUninstallOnSupersedence 値を使用して、パッチ内のコンポーネントをマークできます。 後続のパッチがインストールされ、最初のパッチを置き換えるために MsiPatchSequence テーブルの msidbPatchSequenceSupersedeEarlier 値でマークされている場合、Windows インストーラー 4.5 以降では、msidbComponentAttributesUninstallOnSupersedence とマークされたコンポーネントを登録解除およびアンインストールして、コンピュータに未使用のコンポーネントが残るのを防ぐことができます。 コンポーネントがこのビットでマークされていない場合、置き換えパッチをインストールすると、未使用のコンポーネントがコンピュータに残る可能性があります。 MSIUNINSTALLSUPERSEDEDCOMPONENTS プロパティの設定は、すべてのコンポーネントに対してこのビットを設定する場合と同じ効果があります。

**Windows インストーラー 3.0 以降: **

Windows インストーラー 3.0 を使用し、MsiPatchSequence テーブルを持つパッチ パッケージを作成する開発者は、次の操作を行うパッチ パッケージを作成できます。

  • インストーラーによってキャッシュされた製品ベースラインを使用して、より小さなデルタ パッチでより簡単にアプリケーションにサービスを提供できます。 製品ベースラインの使用の詳細については、「パッチ サイズの縮小」を参照してください。
  • パッチによって変更されていない特定のテーブルに関連付けられているアクションをスキップします。 これにより、パッチのインストールに必要な時間が大幅に短縮されます。 スキップできるテーブルの詳細については、「パッチの最適化」を参照してください。
  • アプリケーション全体およびその他のパッチをアンインストールして再インストールせずに、個別に任意の順序でアンインストールできるパッチを作成してインストールします。 パッチのアンインストールについては、「パッチの削除」をご覧ください。
  • パッチがシステムに提供される順序に関係なく、一定の順序でパッチを適用します。 Windows インストーラーがパッチの適用に使用するシーケンスを決定する方法の詳細については、「パッチのシーケンス処理」を参照してください。
  • ユーザーごとのマネージド コンテキストにインストールされているアプリケーションにパッチを適用します。 詳細については、「ユーザーごとのマネージド アプリケーションにパッチを適用する」を参照してください。

**Windows インストーラー 2.0: **

MsiPatchSequence テーブルはサポートされていません。 Windows インストーラー 3.0 以降では、パッチ パッケージには、他の更新プログラムに対するパッチの修正プログラムの順序と追加の説明情報を記述する情報を含めることができます。

パッチ パッケージを作成する場合、Msimsp.exePatchwiz.dll などのパッチ作成ツールを使用することをお勧めします。 開発者は、パッチ パッケージの作成セクションで説明されているように、パッチ作成ファイルを生成できます。 小規模な更新プログラムのパッチの作成については、「小規模な更新プログラムのパッチの適用例」セクションで説明されています。

Microsoft Windows インストーラーは、パッチの有効なソースとして Uniform Resource Locator (URL) を受け入れます。 Web サーバーにあるパッチをインストールする方法の詳細については、「インターネットからのパッチのダウンロードとインストール」を参照してください。

アプリケーションを初めてインストールするときに、単一の Windows インストーラー パッチ (.msp ファイル) をインストール パッケージに適用できます。 詳細については、「初期インストールのパッチの適用」を参照してください。

パッチの適用に元のインストール ソースへのアクセスが必要な場合、すべての状況を排除することはできません。 ただし、パッチが元のソースへのアクセスを必要とする可能性を最小限に抑えるには、「パッチが元のインストール ソースへのアクセスを要求するのを防ぐ」に記載されている点に従ってください。

後続のカスタマイズ変換によってパッチが破損する可能性を最小限に抑えるために、通常は最初にパッチをインストールしてからカスタマイズを行います。 カスタマイズ変換を最初にインストールしてからパッチをインストールすると、カスタマイズが中断される可能性があります。 カスタマイズされたアプリケーションにパッチを適用する方法の詳細については、「カスタマイズされたアプリケーションのパッチの適用」を参照してください。