PATCH プロパティ

インストーラーは、MSIApplyPatchMsiApplyMultiplePatches、または /p コマンド ライン オプションを呼び出すことによって、適用されるパッチの一覧を PATCH プロパティに設定します。 また、MsiInstallProduct または /i コマンド ライン オプションを使ってパッケージをインストールしている間に、コマンド ラインで PATCH プロパティを設定することもできます。

PATCH プロパティの値は、インストールされているパッチの一覧です。 一覧の各パッチは、パッチのパッケージ (.msp ファイル) への完全なパスで表されます。一覧の完全なパスはセミコロンで区切られます。

Windows インストーラー 2.0: 複数のパッチはサポートされていません。 複数のパッチを適用するには、Windows インストーラー 3.0 が必要です。

解説

Msimsp.exePatchwiz.dll を使ってパッチ パッケージを作成する場合は、特定のパッチが適用されている場合にのみアクションまたはダイアログ ボックスを実行することを指定できます。 パッチ パッケージ (test.msp など) を作成するときは、製品のアップグレードされたイメージとパッチ作成プロパティ ファイルを作成します。 パッチ作成プロパティ ファイルを作成するとき、ImageFamilies テーブルの MediaSrcPropName フィールドにプロパティ名 (PATCHFORTEST など) を入力できます。 製品のアップグレードされたイメージのシーケンス テーブルを作成するとき、シーケンス テーブルの Condition 列に、条件付きにするアクションまたはダイアログ ボックスの条件ステートメントを含めることができます。

たとえば、次の条件ステートメントを使って、test.msp が適用されている場合にのみアクションまたはダイアログ ボックスを実行できます。

PATCH AND PATCHFORTEST AND PATCH >< PATCHFORTEST

Note

PATCH プロパティには複数のパッチを含めることができるため、特定のパッチが存在することをテストするには、等値演算子 "=" ではなく、サブ文字列演算子 "><" を使います。 条件付きステートメントについて詳しくは、「条件付きステートメントの構文」セクションをご覧ください。

 

test.msp を含むパッチの一覧を適用すると、インストーラーによって両方のプロパティが設定されます。 たとえば、/p コマンド ライン オプションを使って、2 つのパッチの一覧を適用できます。

msiexec /qb /p \\scratch\scratch\XYZ\Patches\test.msp;\\scratch\scratch\XYZ\bar.msp

インストーラーは、PATCH プロパティと PATCHFORTEST プロパティを次のように設定します。

PATCH=\\\\scratch\\scratch\\XYZ\\Patches\\test.msp;\\\\scratch\\scratch\\XYZ\\bar.msp PATCHFORTEST=\\\\scratch\\scratch\\XYZ\\Patches\\test.msp

この場合、条件は TRUE であり、インストールされるパッチ (test.msp と bar.msp) ごとに、上の条件付きアクションまたはダイアログ ボックスを実行できます。

test.msp が適用されない場合、インストーラーはそれを PATCH プロパティに含めず、PATCHFORTEST を設定しません。 この場合、上の条件は FALSE になり、条件付きアクションまたはダイアログ ボックスは実行されません。

必要条件

要件
バージョン
Windows Server 2012、Windows 8、Windows Server 2008 R2、または Windows 7 の Windows インストーラー 5.0。 Windows Server 2008 または Windows Vista の Windows インストーラー 4.0 または Windows インストーラー 4.5。 Windows Server 2003 または Windows XP の Windows インストーラー。 Windows インストーラーのバージョン別に必須となる最小 Windows サービス パックに関する詳細については、Windows インストーラーの実行時の要件に関する記事を参照してください。

関連項目

プロパティ

条件付きステートメントの構文

条件付きステートメントの構文の例