Patchwiz.dll
パッチ パッケージを生成するには、Msimsp.exe や Patchwiz.dll などのパッチ作成ツールを使うことをお勧めします。 Patchwiz.dll バージョン 4.0 は、以前のバージョンの Patchwiz.dll を使って作成されたパッケージやパッチと互換性があります。 Patchwiz.dll ツールは、Windows インストーラー開発者向けの Windows SDK コンポーネントからのみ入手できます。
Patchwiz.dll バージョン 4.0 には、UiCreatePatchPackageEx (Patchwiz.dll) という 1 つの新しい関数があります。これは、UiCreatePatchPackage (Patchwiz.dll) の機能を拡張したものです。 これらの関数は、パッチ作成プロパティ ファイル (.pcp ファイル) を受け取り、インストーラー パッチ パッケージを生成します。
.pcp ファイルは、Windows インストーラー データベース (.msi ファイル) と同じ形式のバイナリ データベース ファイルですが、データベース スキーマは異なります。 そのため、.pcp ファイルを作成するには、インストーラー データベースに使われるものと同じツールを使用できます。
.pcp ファイルを作成するには、Orca.exe などのテーブル エディターを使い、Windows インストーラー SDK に付属する空の .pcp データベース (Template.pcp) に情報を入力します。 詳細については、「小さな更新プログラムの修正プログラムの適用例」を参照してください。
すべての .pcp ファイルに次のデータベース テーブルが必要です。
- Properties テーブル (Patchwiz.dll)
- ImageFamilies テーブル (Patchwiz.dll)
- UpgradedImages テーブル (Patchwiz.dll)
- TargetImages テーブル (Patchwiz.dll)
次のデータベース テーブルは省略可能です。
- UpgradedFiles_OptionalData テーブル (Patchwiz.dll)
- FamilyFileRanges テーブル (Patchwiz.dll)
- TargetFiles_OptionalData テーブル (Patchwiz.dll)
- ExternalFiles テーブル (Patchwiz.dll)
- UpgradedFilesToIgnore テーブル (Patchwiz.dll)
Properties テーブルの MinimumRequiredMsiVersion が 300 である .pcp ファイルの場合は、次のテーブルが必要です。
Note
MinimumRequiredMsiVersion が 300 ではない場合、このテーブルは省略可能です。
Windows インストーラー 3.0 でリリースされたバージョンの Patchwiz.dll を使うと、パッチ シーケンス情報を自動的に生成し、新しいパッチを MsiPatchSequence テーブルに追加できます。 PatchSequence テーブルを使うと、パッチ シーケンス情報を MsiPatchSequence テーブルに手動で追加できます。 詳細については、「パッチ シーケンス情報の生成」を参照してください。
Patchwiz.dll バージョン 2.0 以降では、パッチ情報キャッシュ (Patchwiz.dll) を使うことで、その後のパッチ作成速度を向上させることができます。
ターゲットとアップグレードのイメージ バイナリにパブリック シンボルを使うと、バイナリ パッチのサイズを約半分に減らせます。 詳細については、「シンボルを使用してバイナリ パッチ サイズを小さくする」を参照してください。
パッチの適用時にターゲット ファイルの特定の領域が上書きされないように保護し、それらの領域の情報を保持するように指定することができます。 詳細については、「ファイルの選択した領域に修正プログラムを適用する」を参照してください。
関連トピック