RemoveExistingProducs 能否帮助从 InstallScript 升级到 MSI?

Can RemoveExistingProducs help upgrade from InstallScript to MSI?

在我们的下一个主要版本中,我们希望在我们的 InstallShield 项目(从头开始创建)中从使用 InstallScript 切换到 Basic MSI。 RemoveExistingProducts 是否可以在安装 MSI 内容之前调用基于 InstallScript 的安装的卸载操作?如果没有,在切换到 MSI 之前,在安装了 InstallScript 的产品之后进行清理有什么建议?它可以作为 MSI 安装的一部分完成吗?

不,不能。人们所做的事情是从已安装程序的 Programs&Features 条目中获取 Uninstall 字符串并调用它,可能会解析字符串并在需要时添加安静选项。这需要 运行 一些代码。您遇到的问题是卸载可能需要提升,并且 MSI 安装的 UI 序列未提升,因此 UI 序列中的自定义操作可能不起作用。执行序列中的延迟自定义操作将被提升,因此可能会起作用。您需要处理可能的卸载失败和 MSI 安装失败。

我见过的许多安装只使用启动条件来检测较旧的非 MSI 产品并阻止安装,直到手动卸载较旧的产品。