从 InstallScript 迁移到 WiX Toolset 的最佳方法是什么?

What is the best way to migrate from InstallScript to WiX Toolset?

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

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

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

有没有更好的方法?

好的,在所有这些评论之后,我想我明白为什么这是一个问题。不幸的是,我认为没有一种非常简单的方法可以做您想做的事。

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

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

复制回配置文件

每个自定义操作都应该 运行 有条件地取决于您传入的 属性 是否设置为某些内容。我会在 InstallInitialize 之后安排复制 cofig,在复制之后安排卸载,在 InstallFinalize 之前安排恢复只是为了确保在安装程序将所有文件放入系统后 之后复制所有内容。

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

我对 InstallShield 的了解程度足以让我知道我真的不喜欢它,所以如果其他人知道更多并且知道更好的方法,他们会希望加入进来。