文件版本控制规则

任何安装程序的核心是文件的实际安装。 确定是否安装文件是一个复杂的过程。 在最高级别,此决定取决于文件所属的组件是否标记为安装。 确定应复制文件后,如果目标文件夹中存在同名的另一个文件,则该过程会很复杂。 在这种情况下,做出确定需要一组涉及以下属性的规则:

  • 版本
  • Date
  • 语言

当尝试将文件安装到已包含同名文件的位置时,安装程序才使用这些规则。 在这种情况下,Windows安装程序使用以下规则(所有其他内容都相等)来确定是否安装。

最高版本 Wins - 所有其他内容都相等,最高版本的文件将获胜,即使计算机上的文件具有最高版本也是如此。

版本控制文件 Win - 通过非版本化文件安装版本控制的文件。

偏爱产品语言 - 如果所安装的文件的语言与计算机上的文件不同,则使用与所安装产品匹配的语言来支持该文件。 非特定语言文件被视为另一种语言,因此再次支持要安装的产品。

不匹配的多种语言 - 在分解要安装的文件和计算机上的文件之间的任何公共语言后,根据所安装的产品所需的内容,任何剩余语言都受到青睐。

保留超集语言 - 保留支持多种语言的文件,无论它是已在计算机上安装还是正在安装。

非版本化文件是用户数据 - 如果修改日期晚于计算机上的文件的创建日期,请不要安装该文件,因为将删除用户自定义。 如果修改日期和创建日期相同,请安装该文件。 如果创建日期晚于修改日期,则该文件被视为未修改,请安装该文件。

配套文件的安装不取决于其自己的文件版本控制信息,而取决于其配套父文件的版本控制。 对于配套文件,仅当父文件具有更高版本时,才会跳过安装。 请注意,作为其组件的密钥路径的文件不能是配套文件,因为这会导致由配套父文件确定的密钥路径文件的版本控制逻辑。

使用 配套文件的非反版本文件-A 与使用配套机制的版本化文件关联的非反转文件遵守版本控制文件的规则。 唯一的例外是计算机上的版本控制文件以及所安装的版本化文件具有相同的版本和语言,但计算机上的配套文件缺失。 在这种情况下,即使使用计算机上的版本控制文件,也会使用要安装的配套文件。 此外,如果 REINSTALLMODE 属性包含覆盖较旧版本选项, (“o”或“e”) 且配套文件的版本等于计算机上已有的文件,则安装使用配套文件的非反转文件。

规则是全局的 - 用于确定何时安装文件的规则驻留在安装程序中的一个位置,并且是全局规则,这意味着它们同样适用于所有文件。

有关用于文件版本的格式的示例,请参阅 版本 数据类型。 有关更多详细信息,请参阅 替换现有文件默认文件版本控制