【问题标题】:Forcing Installshield to uninstall before an install在安装之前强制 Installshield 卸载
【发布时间】:2010-10-13 03:18:54
【问题描述】:

我有一个 InstallShield 12 安装脚本。我想在安装新版本之前卸载旧版本。我将保持包的名称不变。我该怎么做?

【问题讨论】:

    标签: upgrade installshield uninstallation installscript


    【解决方案1】:

    假设这不是一个 MSI 项目并且您保持相同的项目 GUID,您可以简单地在 OnMaintUIBefore 函数中调用 ComponentUninstall()。 如果项目 GUID 不同,您可以查看注册表中 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{PROJECT_GUID} 下的卸载字符串,然后使用它执行 LaunchApp。

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      对于基于 MSI 的项目,这将通过为您的项目配置主要升级来完成。 InstallScript 项目不存在升级,但没有 Windows Installer 限制可防止您同时运行多个安装。您应该能够简单地在您的 InstallScript 代码中手动运行旧版本的卸载(可能在 OnFirstUIBefore 函数中)。

      【讨论】:

      • 实际上,现在同时运行多个安装是有限制的。 (例如,您不能从另一个安装程序启动一个安装程序。)因此,如果您希望安装程序安装 .MSI 所需的所有先决条件,则需要制作引导应用程序。我不知道究竟是哪个版本的 Windows 安装程序实现了这些限制(2.0?),但它在某处有记录。
      • 我认为最初的问题是关于 InstallScipt 安装,而不是 MSI 安装。 InstallScript-only 安装没有 Windows Installer 的限制,因为它们不使用 MSI,因此您可以同时运行多个。这就是为什么 InstallScript 安装可以用作其他安装(包括 MSI 安装)的“引导程序”。
      猜你喜欢
      • 2014-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-11
      • 1970-01-01
      • 2019-02-21
      • 2010-10-01
      相关资源
      最近更新 更多