应用程序升级安装指南

在软件部署过程中,升级现有版本是一个常见的需求。本文将介绍如何使用安装程序项目和后构建JavaScript来实现应用程序的升级过程。将详细说明如何检测是否已安装旧版本,如何跳过某些安装对话框,以及如何更改对话框中的文本以反映升级过程。

准备工作

首先,需要设置安装程序项目,以便在构建完成后自动执行必要的MSI更改。这包括创建注册表值以记住上次安装的位置和用户选择,以及设置后构建事件来执行JavaScript文件。

需要在本地计算机上创建三个注册表值:

  • TF:记住上次安装的目标文件夹(TARGETDIR)。
  • AU:记住用户选择的是为所有用户安装还是仅为当前用户安装。
  • PC:记住上次安装或升级的产品代码(ProductCode)。

接下来,需要创建注册表搜索,以便在安装过程中读取这些值:

  • 读取TF值到变量[TARGETDIR]。
  • 读取AU值到变量[REMALLUSERS]。
  • 读取PC值到变量[OLDPRODUCTCODE]。

重要的是,步骤6必须在步骤7之前执行,因为步骤7依赖于步骤6检索到的值。

需要创建一个注册表搜索,以检查是否存在注册表键(安装)SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\[OLDPRODUCTCODE],并将结果写入变量[ISOLDPRODUCTCODEINSTALLED]。这将决定安装还是升级

后构建事件更改MSI

后构建事件将自动执行以下操作:

  • 确保[FolderForm_AllUsers]动作只在安装时发生,升级时将根据从注册表中检索到的[REMALLUSERS]值设置。
  • 根据安装或升级,更改所有控件的文本。
  • 在属性表中插入一个参数,并为其设置默认(安装)值。
  • 在自定义动作表中插入一个动作,以便在升级时将其设置为升级值。
  • 在安装UI序列表中调用自定义动作,以便在升级时(条件ISOLDPRODUCTCODEINSTALLED<>"")实际更改参数值。
  • 对于控制表中的每个文本列值,用参数名替换希望在安装/升级时变化的字符串。
  • 在升级时移除FolderForm。

需要定义自定义动作,以便在升级时更改[WelcomeForm_NextArgs]和[ConfirmInstallForm_PrevArgs]的值。这些自定义动作将在安装UI序列表中调用,以便在升级时(条件ISOLDPRODUCTCODEINSTALLED<>"")实际执行更改。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485