在我们的下一个主要版本中,我们希望在InstallShield项目(从头创建)中使用InstallScript切换到Basic MSI。在安装MSI内容之前,可以使用RemoveExistingProducts
来调用基于InstallScript的安装的卸载操作吗?如果没有,在切换到MSI之前,在安装InstallScript的产品之后清理有什么建议?它可以作为MSI安装的一部分来完成吗?
答案 0 :(得分:0)
不,它不能。人们做的事情是从已安装程序的Programs& Features条目中获取Uninstall字符串并调用它,可能会解析字符串并在需要时添加一个安静选项。这需要运行一些代码。您遇到的问题是卸载可能需要提升,并且MSI安装的UI序列未被提升,因此UI序列中的自定义操作可能无效。执行序列中的延迟自定义操作将被提升,因此可能有效。您需要处理可能的卸载失败并且无法安装MSI。
我见过的许多安装只是使用启动条件来检测较旧的非MSI产品,并在手动卸载旧产品之前阻止安装。