【问题标题】:Can RemoveExistingProducs help upgrade from InstallScript to MSI?RemoveExistingProducs 可以帮助从 InstallScript 升级到 MSI 吗?
【发布时间】:2015-11-25 14:19:01
【问题描述】:
在我们的下一个主要版本中,我们希望在我们的 InstallShield 项目(从头开始创建)中从使用 InstallScript 切换到基本 MSI。 RemoveExistingProducts 可以在安装 MSI 内容之前调用基于 InstallScript 的安装的卸载操作吗?如果没有,在安装了 InstallScript 的产品之后在切换到 MSI 之前进行清理有什么建议?它可以作为 MSI 安装的一部分完成吗?
【问题讨论】:
标签:
windows-installer
installshield
【解决方案1】:
不,它不能。人们所做的事情是从已安装程序的 Programs&Features 条目中获取 Uninstall 字符串并调用它,可能会解析字符串并在需要时添加一个 quiet 选项。这需要运行一些代码。您遇到的问题是卸载可能需要提升,并且 MSI 安装的 UI 序列未提升,因此 UI 序列中的自定义操作可能不起作用。执行序列中的延迟自定义操作将被提升,因此可能会起作用。您需要处理可能的卸载失败和 MSI 安装失败。
我见过的许多安装只是使用了一个启动条件,该条件检测旧的非 MSI 产品并阻止安装,直到手动卸载旧产品。