【问题标题】:What is the best way to migrate from InstallScript to WiX Toolset?从 InstallScript 迁移到 WiX 工具集的最佳方法是什么?
【发布时间】:2016-05-18 10:30:38
【问题描述】:

我们使用 InstallShield InstallScript 项目来创建我们的安装程序,并且正在寻找一种迁移到 WiX 工具集 的好方法。据我所知,没有升级代码(对于 MSI)可以从 Installshield InstallScript 项目更新到 WiX 项目。

目前我找到的唯一解决方案是:

  1. 手动保存配置
  2. 完全卸载InstallScript安装
  3. 安装 WiX 安装
  4. 应用保存的配置

有没有更好的办法?

【问题讨论】:

  • 删除 installshield 项目并发誓再也不提它。你确定没有UpgradeCode?你能打开你用 Orca 安装的 msi 并查看它的属性表,看看是否列出了 UpgradeCode 吗?您还应该能够在 wix 安装中将“保存和恢复配置”作为自定义操作实现。
  • 我很乐意,但不幸的是,这不是一个选择。我相信这个link 的答案,它说没有UpgradeCode。我不能,因为我只生成了一个与 Orca 不兼容的 EXE
  • 您应该可以使用 installer.exe /b"C:\Path\to\extract" 然后检查该目录的 msi。它也可能是 /extract_all:"C:\Path\To\extract"
  • setup.exe 只是一个围绕 msi 的包装程序。 msi 是运行安装程序时实际安装的。安装程序只允许运行一些额外的东西,例如语言选择和必备包。
  • 您安装的产品还应该有一些注册表项,最终链接到格式化的升级 GUID,但发现这可能很烦人。

标签: wix windows-installer installation installshield installscript


【解决方案1】:

好吧,在所有这些 cmets 之后,我想我明白为什么会出现这样的问题。不幸的是,我认为没有一种非常简单的方法可以做你想做的事情。

我认为您的方法将是从这种基于 isntallscript 设置的安装迁移的唯一真正方法。 HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall 中应该有一些与您的产品相关的注册表项。这里可能有一个卸载命令,您可以从烧录包中读入变量并将该值作为属性传递给您的 msi。

在您的 MSI 中,您可以有 3 个与从 installshield 产品安装升级特别相关的自定义操作。所有这些任务都应该延迟自定义操作,以便它们可以在管理员提升的情况下运行。第一个任务应该将所有配置设置复制到一个安全的地方(通常 %temp%\ProductConfig\ 就可以了)。保存配置后的第二部分将运行该卸载命令以删除产品,您可能需要附加 /q 或其他内容以使其被动/安静地运行。然后在安装结束时,您可以从 temp 复制回配置文件。

每个自定义操作都应根据您传入的属性是否设置为条件来运行。我会在 InstallInitialize 之后安排复制配置,在复制之后进行卸载并在 InstallFinalize 之前进行恢复,以确保在安装程序将所有文件放在系统上之后复制所有内容。

理想情况下,您希望在用户无需交互的情况下升级所有内容,除非通过单击下一步和安装以最少的方式进行交互。

我只与 InstallShield 打过交道,知道我真的不喜欢它,所以如果其他人知道更多并且知道更好的方法,他们希望能加入。

【讨论】:

  • 非常感谢您的详细描述,我会试一试。
  • 对于遇到相同问题的其他人,也可以使用 C:\Program Files\InstallShield Installation Information\{setup.exe b>ProductCodeFromIsmProject} 卸载产品。隐藏所有内容后,它只会显示一个弹出窗口:setup.exe /removeonly /hide_splash /hide_usd /hide_progress 可以使用静音模式禁用此弹出窗口,如下所示:setup.exe /removeonly /hide_splash /hide_usd /hide_progress /s /f1"SilentUninstall.iss" 我想有更好的方法,但我还没有找到。
猜你喜欢
  • 1970-01-01
  • 2019-08-20
  • 1970-01-01
  • 1970-01-01
  • 2011-03-03
  • 2010-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多