MsiPatchSequence テーブル
MsiPatchSequence テーブルには、他のすべてのパッチに対する小さな更新プログラムのパッチの適用順序を決定するためにインストーラーに必要なすべての情報が含まれています。 テーブルは、パッチ ファイルのデータベース内にあり、パッチ内の変換にはない必要があります。 インストーラーは、メジャー アップグレード パッチを適用する場合にこのテーブルを無視します。 マイナー アップグレード パッチを適用する場合、インストーラーは、シーケンスする必要がない置き換え対象のパッチを特定するためにのみ、このテーブルを使います。
MsiPatchSequence テーブルには以下の列があります。
Column | 種類 | キー | Nullable |
---|---|---|---|
PatchFamily | Identifier | Y | N |
ProductCode | GUID | Y | Y |
シーケンス | Version | N | N |
属性 | 整数 | N | Y |
[列]
-
PatchFamily
-
パッチが、このフィールドに指定されたパッチ ファミリのメンバーであることを指定します。 同じ製品バージョンを対象とする同じパッチ ファミリ内のパッチは、Sequence 列の値で並べ替えられます。 パッチ ファミリ内のパッチは、シーケンスの昇順にターゲット製品に適用されます。 PatchFamily は、どのパッチを置き換えるかを決定するためにも使われます。 パッチが複数の製品に適用される場合、または複数の修正プログラムを含んでいる場合、パッチは複数の行に列挙され、複数のパッチ ファミリに属することがあります。
Windows インストーラーは、PatchFamily 値を他の PatchFamily 値と等しいかどうかを比較する以外の方法で解釈することはありません。 PatchFamily 値は、パッチ セットの対象となる ProductCode 内で一意である必要があります。 複雑なパッチ適用シナリオでは、場合によっては PatchFamily 識別子がグローバルに一意である必要があります。
-
ProductCode
-
このフィールドの値は省略可能です。 製品コード GUID がこのフィールドに入力され、指定した製品にパッチが適用される場合、パッチは並べ替えられ、指定した PatchFamily のメンバーとして適用されます。 このフィールドに製品コード GUID が入力され、ProductCode に指定された製品にパッチが適用されていない場合、この行は無視されます。 ProductCode の値が NULL の場合、製品コードに関係なく、パッチは並べ替えられ、パッチのすべてのターゲットに対して PatchFamily のメンバーとして適用されます。
パッチは同じ PatchFamily に複数の行を持ち、パッチの対象となる製品ごとに異なる ProductCode を持つことができます。 PatchFamily の 1 行で ProductCode に NULL を指定できます。 ProductCode が NULL でない行とターゲット製品が一致する場合、インストーラーは一致する行を使い、ProductCode が NULL の行を無視します。 指定した製品コードのいずれもターゲットと一致しない場合、製品コードに関係なく、パッチは並べ替えられ、パッチのすべてのターゲットに対して PatchFamily のメンバーとして適用されます。
-
Sequence
-
Sequence 列の値には、指定した PatchFamily 内でのこのパッチの順序を指定します。 Sequence の値は、Version データの形式で表現します。 値には 1 個から 4 個のフィールドが含まれ、各フィールドの範囲は 0 から 65535 です。 PatchFamily のメンバーは、Sequence 値の昇順で並べ替えられ、ターゲット製品に適用されます。 たとえば、次の 6 個の値は昇順です: 1、1.1、1.2、2.01、2.01.1、2.01.1.1。
-
Attributes
-
msidbPatchSequenceSupersedeEarlier 属性が行に存在することは、小さな更新プログラム パッチが、同じ PatchFamily 内の Sequence 値がより小さいすべてのパッチで提供される更新プログラムよりも優先されることを示します。 このパッチには、指定した PatchFamily 内の以前のパッチで提供されたすべての修正プログラムが含まれています。 以前のパッチは複数のパッチ ファミリに属することがあるため、この属性は、このパッチがすべての場合に以前のパッチよりも優先されることを意味するわけではありません。
どのような状況でも、msidbPatchSequenceSupersedeEarlier が設定されている場合であっても、小さな更新プログラム パッチをマイナー アップグレードまたはメジャー アップグレード パッチよりも優先することはできません。
名前 値 説明 0x00 単純なシーケンス値を示します。 msidbPatchSequenceSupersedeEarlier 0x01 このファミリの以前のパッチを置き換えるパッチを示します。
検証
関連トピック