我们使用 InstallShield InstallScript 项目来创建我们的安装程序,并且正在寻找一种迁移到 WiX Toolset 的好方法。据我所知,没有UpgradeCode(对于MSI)从 Installshield InstallScript 项目更新到 WiX 项目。
到目前为止我找到的唯一解决方案是:
有更好的方法吗?
答案 0 :(得分:0)
在所有这些评论之后,我想我明白为什么这是一个问题。不幸的是,我不认为有一种非常简单的方法可以做你想做的事。
我认为您的方法将是从这个基于isntallscript设置的安装迁移的唯一真正方法。 HKLM / SOFTWARE / Microsoft / Windows / CurrentVersion / Uninstall中应该有一些与您的产品相关的注册表项。在这里,可能有一个卸载命令,您可以从您的刻录包中读取变量并将该值作为属性传递给您的msi。
在MSI中,您可以有3个与从installshield产品安装升级相关的自定义操作。所有这些任务都应该是延迟的自定义操作,以便它们可以使用管理员提升运行。第一个任务应该将所有配置设置复制到安全的地方(通常%temp%\ ProductConfig \就可以了)。保存配置后的第二部分将运行该卸载命令以删除产品,您可能需要附加/ q或其他东西以使其被动/安静地运行。然后在安装结束时,您可以从temp。
复制配置文件每个自定义操作都应有条件地运行,无论您传入的属性是否设置为某个属性。我会安排InstallInitialize之后的复制cofig,复制之后的卸载以及InstallFinalize之前的恢复,只是为了确保在安装程序将所有文件放在系统之后将所有内容复制到上。
理想情况下,您希望无需用户进行交互即可升级所有内容,除非通过单击“下一步”和“安装”以最小的方式进行交互。
我只是处理了InstallShield足以知道我真的不喜欢它,所以如果其他人知道更多并知道更好的方法,他们希望能够加入。