【问题标题】:MSI update installerMSI 更新安装程序
【发布时间】:2013-04-30 05:59:50
【问题描述】:

我有两个 MSI 安装程序,BasicInstaller.msi 和 updateInstaller.msi。顾名思义,updateInstaller.msi 是基本安装程序的更新版本(添加了一些新文件)。我在 UI 模式下安装了基本安装程序,我已将安装路径提到为“D:/MSIApp”。

我正在使用 msiexec.cmd(这将进入一个 bat 文件)以静默模式安装 updateInstaller.msi,它会覆盖由 BasicInstaller.msi 创建的文件和注册表项。我可以使用以下命令安装它

msiexec /i updateInstaller.msi /qn TARGETDIR=D:/MSIApp

现在,我正在寻找在 basicInstaller 的安装路径中拾取和 updateInstaller 安装在同一位置的逻辑。简而言之,我想避免 TARGERDIR 开关硬编码。

如果我没有在 msiexec 中指定 TARGETDIR,updateInstaller 会安装在默认的“C:/programfiles/...”位置。

有人可以帮助我解决可能的解决方案吗?任何帮助表示赞赏。

【问题讨论】:

  • 你需要从项目注册表中以程序的方式找出之前的目标目录到regedit中。为此,您需要为您的项目创建注册表,以便在有新更新时首先搜索注册表然后更新。

标签: batch-file windows-installer


【解决方案1】:

这通常通过让安装程序放置一个InstallPath(或类似名称)注册表项来完成。后续安装者可以阅读该条目并将其用作自己的安装路径。

有关示例,请参阅 this page

【讨论】:

  • 假设 OP 了解重命名 MSI 需要重大升级,并且这就是他已实施的。 (而不是直接创建另一个 MSI。)
猜你喜欢
  • 2011-10-15
  • 2014-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-01
相关资源
最近更新 更多