パッチ パッケージの作成

開発者は、パッチ作成ファイルを生成し、Msimsp.exeを使用して Patchwiz.dllUiCreatePatchPackageEx 関数を呼び出すことによって、パッチ パッケージを作成します。 Msimsp.exeとPatchwiz.dllは、Windows インストーラー SDK で提供されています。 詳細については、「 小さな更新プログラムの修正プログラムの適用例」を参照してください。

Windows インストーラー パッケージにパッチを適用すると、新しい.msi ファイルを使用して元のソースがインストールされるため、新しい.msi ファイルは元のソースのレイアウトと互換性を維持する必要があります。

パッチ パッケージを作成する場合は、圧縮されていないセットアップ イメージを使用して、CD-ROM から管理イメージや非圧縮セットアップ イメージなどのパッチを作成する必要があります。 次の制限にも従う必要があります。

  • あるフォルダーから別のフォルダーにファイルを移動しないでください。

  • キャビネット間でファイルを移動しないでください。

  • キャビネット内のファイルの順序を変更しないでください。

  • 既存のファイルのシーケンス番号は変更しないでください。 シーケンス番号は、 ファイル テーブルの [シーケンス] 列に指定された値です。

  • パッチによって追加される新しいファイルは、既存のファイル シーケンスの末尾に配置する必要があります。 アップグレードされたイメージ内の新しいファイルのシーケンス番号は、ターゲット イメージ内の既存のファイルの最大シーケンス番号を超える必要があります。

  • ファイル テーブル の主キーは、元の.msiファイル バージョンと新しいファイル バージョンの間で変更しないでください。

    Note

    ファイルは、ターゲット イメージと更新されたイメージの両方の ファイル テーブル で同じキーを持っている必要があります。 両方のテーブルの [ファイル] 列の文字列値は、大文字と小文字を含めて同じである必要があります。

     

  • 次の表の例を避ける場合にのみ異なる ファイル テーブル キーを持つパッケージを作成しないでください。

    ファイル Component_ FileName
    readme.txt Comp1 readme.txt
    ReadMe.txt Comp2 readme.txt

     

    Windows インストーラーでは、Comp1 と Comp2 が異なるディレクトリにインストールされている場合に前の表の例を許可できますが、Msimsp.exeまたはPatchwiz.dllを使用してパッケージのパッチを生成することはできません。 Msimsp.exeとPatchwiz.dll呼び出しMakecab.exe。大文字と小文字は区別されず、失敗します。

    セットアップでマージ モジュールを使用する場合は、ファイル シーケンス番号とレイアウトが上記のガイドラインに従っていることを確認します。