修正プログラム パッケージの作成

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

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

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

  • フォルダー間でファイルを移動しない。

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

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

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

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

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

    Note

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

     

  • 大文字と小文字のみが異なるファイル テーブル キーを含むパッケージを作成しないでください。たとえば、次の表の例を避けてください。

    ファイル 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 の呼び出しでは、大文字と小文字が区別されず、失敗します。

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