MsiPatchSequence 數據表
MsiPatchSequence 數據表包含安裝程式需要的所有資訊,以判斷相對於所有其他修補程式 小型更新 修補程式的應用程式順序。 數據表必須位於修補程式檔案的資料庫中,而不是在修補程式中的轉換中。 安裝程式會在套用 主要升級 修補程式時忽略此數據表。 套用 次要升級 修補程式時,安裝程式只會使用此數據表來識別不得排序的已取代修補程式。
MsiPatchSequence 資料表 具有下列數據行。
列 | 類型 | 鑰匙 | 空 |
---|---|---|---|
PatchFamily | 識別碼 | Y | N |
ProductCode | GUID | Y | Y |
序列 | 版本 | N | N |
屬性 | 整數 | N | Y |
列
-
PatchFamily
-
指定修補程式是這個欄位中名為的修補程式系列成員。 以相同產品版本為目標之相同修補程式系列中的修補程式會依 Sequence 數據行中的值排序。 修補程式系列中的修補程式會依遞增順序套用至目標產品。 PatchFamily 也用來判斷要取代哪些修補程式。 如果修補程式套用至多個產品或包含多個修正程式,則修補程式可能會列在多個數據列中,且屬於多個修補程式系列。
Windows Installer 不會以與其他 PatchFamily 值相等比較以外的任何方式解譯 PatchFamily 值。 PatchFamily 值在以修補程式集為目標的 ProductCode 中必須是唯一的。 在複雜的修補案例中,PatchFamily標識符可能需要全域唯一。
-
ProductCode
-
此欄位中的值是選擇性的。 如果在此欄位中輸入 原始程式碼 GUID,且修補程式會套用至指定的產品,則會將修補程式排序並套用為指定 PatchFamily 的成員。 如果在此欄位中輸入了產品代碼 GUID,而且修補程式未套用至 ProductCode 指定的產品,則會忽略此數據列。 如果 ProductCode 中的值為 NULL,則不論產品名稱為何,修補程式都會排序並套用為 PatchFamily 的所有目標成員。
修補程式可以有相同 PatchFamily 中的多個數據列,以及修補程式目標之每個產品的不同 ProductCode。 PatchFamily 的一個數據列可以指定 ProductCode 的 NULL。 如果目標產品與非 NULL ProductCode 的數據列相符,安裝程式會使用相符的數據列,並忽略具有 NULL ProductCode 的數據列。 如果指定的產品名稱都不符合目標,則不論產品代碼為何,修補程式都會排序並套用為 PatchFamily 的所有目標成員。
-
序列
-
Sequence 資料行中的值會指定指定 PatchFamily 內這個修補程式的順序。 Sequence 中的值會以 Version 數據的格式表示。 值包含介於 1 到 4 個字段,且每個欄位的範圍為 0 到 65535。 PatchFamily 的成員會依遞增 Sequence 值的順序排序並套用至目標產品。 例如,下列六個值正在增加:1、1.1、1.2、2.01、2.01.1、2.01.1。
-
屬性
-
數據列中存在 msidbPatchSequenceSupersedeEarlier 屬性,表示 小型更新 修補程式取代相同 PatchFamily 中所有修補程式所提供的更新。 此修補程式包含指定 PatchFamily 中先前修補程式所提供的所有修正。 此屬性並不表示此修補程式在所有情況下都會取代先前的修補程式,因為先前的修補程式可以屬於多個修補程式系列。
小型更新 修補程式無法在任何情況下取代 次要升級 或 主要升級 修補程式,即使 msidbPatchSequenceSupersedeEarlier 也一樣。
名字 價值 意義 0x00 表示簡單的排序值。 msidbPatchSequenceSupersedeEarlier 0x01 指出取代此系列中先前修補程式的修補程式。
驗證
相關主題