Upgrade 表
Upgrade 表包含主要升级期间所需的信息。 若要完全启用安装程序升级功能,每个包都应有 UpgradeCode 属性和 Upgrade 表。 升级表中的每条记录都提供了用于标识受升级影响的一组产品的升级代码、产品版本和语言信息特征组合。 当 FindRelatedProducts 操作检测到系统上安装了受影响的产品时,此操作会将产品代码附加到 ActionProperty 列中指定的属性。 RemoveExistingProducts 操作和 MigrateFeatureStates 操作只会移除或迁移 ActionProperty 列中列出的产品。
Upgrade 表包含下表中显示的列。
列 | 类型 | 密钥 | Nullable |
---|---|---|---|
UpgradeCode | GUID | Y | N |
VersionMin | 文本 | Y | Y |
VersionMax | 文本 | Y | Y |
语言 | 文本 | Y | Y |
特性 | 整数 | Y | N |
删除 | Formatted | N | Y |
ActionProperty | Identifier | N | N |
列
-
UpgradeCode
-
此列中的 UpgradeCode 属性指定将由 FindRelatedProducts 操作检测的所有产品的升级代码。
-
VersionMin
-
FindRelatedProducts 检测到的产品版本范围的下限。 在 Attributes 中输入 msidbUpgradeAttributesVersionMinInclusive 即可在范围中包括 VersionMin。 如果 VersionMin 等于空字符串 (""),则其计算结果与 0 相同。 如果 VersionMin 为 NULL,则 FindRelatedProducts 将忽略 msidbUpgradeAttributesVersionMinInclusive 并检测所有以前的版本。 VersionMin 和 VersionMax 不得同时为 null。
VersionMin 必须是有效的产品版本,如 ProductVersion 属性中所述。 请注意,Windows Installer 仅使用产品版本的前三个字段。 如果在产品版本中包括第四个字段,安装程序将忽略第四个字段。
-
VersionMax
-
FindRelatedProducts 操作检测到的产品版本范围的上限。 在 Attributes 中输入 msidbUpgradeAttributesVersionMaxInclusive 即可在范围中包括 VersionMax。 如果 VersionMax 等于空字符串 (""),则其计算结果与 0 相同。 如果 VersionMax 为 null,FindRelatedProducts 将忽略 msidbUpgradeAttributesVersionMaxInclusive,并检测大于(或大于或等于)VersionMin 和 msidbUpgradeAttributesVersionMinInclusive 指定的下限的所有产品版本。 VersionMin 和 VersionMax 不得同时为 null。
VersionMax 必须是有效的产品版本,如 ProductVersion 属性中所述。 请注意,Windows Installer 仅使用产品版本的前三个字段。 如果在产品版本中包括第四个字段,安装程序将忽略第四个字段。
-
Language
-
FindRelatedProducts 检测到的语言集。 输入语言数字标识符 (LANGID) 列表(以逗号分隔)。 在 Attributes 中输入 msidbUpgradeAttributesLanguagesExclusive 以检测除 Language 中列出的语言之外的所有语言。 如果 Language 为 NULL 或空字符串 (""),则 FindRelatedProducts 将忽略 msidbUpgradeAttributesLanguagesExclusive 并检测所有语言。
-
Attributes
-
此列包含用于指定 Upgrade 表属性的位标志。
位标志名称 小数 十六进制 Attribute msidbUpgradeAttributesMigrateFeatures 1 0x001 通过在 MigrateFeatureStates 操作中启用逻辑来迁移功能状态。 msidbUpgradeAttributesOnlyDetect 2 为 0x002 仅检测产品和应用程序,但不会移除。 msidbUpgradeAttributesIgnoreRemoveFailure 4 0x004 在移除产品或应用程序失败时继续安装。 msidbUpgradeAttributesVersionMinInclusive 256 0x100 检测版本范围,包括 VersionMin 中的值。 msidbUpgradeAttributesVersionMaxInclusive 512 0x200 检测版本范围,包括 VersionMax 中的值。 msidbUpgradeAttributesLanguagesExclusive 1024 0x400 检测所有语言,不包括 Language 列中列出的语言。 -
Remove
-
安装程序将 REMOVE 属性设置为此列中指定的功能。 可以在运行时确定要删除的功能。 在此字段中输入的 Formatted 字符串必须计算为以逗号分隔的功能名称列表。 例如:[Feature1],[Feature2],[Feature3]。 如果字段包含计算结果为空字符串 ("") 的格式化文本,则不会移除任何功能。 仅当 Remove 字段为空时,安装程序才会设置 REMOVE=ALL。 请注意空字符串和空字段之间的差异。 如果字段为空,则为 null。
-
ActionProperty
-
当 FindRelatedProducts 操作检测到系统上安装了相关产品时,便会将产品代码附加到此字段中指定的属性中。 此列中指定的属性必须是公共属性,并且包作者必须将该属性添加到 SecureCustomProperties 属性中。 Upgrade 表中的每一行都必须具有唯一的 ActionProperty 值。 在 FindRelatedProducts 之后,此属性的值是一个用分号 (;) 分隔的列表,列出在系统上检测到的列表产品代码。
验证