我有一个旧的 VB6 应用程序,它是使用非常旧的 16 位版本的 InstallShield 部署的。我已经使用 Inno Setup 创建了一个新的安装程序,以便通过更新对我的 VB6 应用程序进行 64 位友好。
我的所有用户都已安装现有的 InstallShield 版本。目前,我的 Inno Setup 正在运行。问题是,我不想覆盖旧的 InstallShield 安装文件,因此我的 Inno Setup 安装到另一个目录。这会导致问题,因为现在我安装了两个版本,有两个单独的图标。
当我安装新的 Inno Setup 版本时,我需要一种方法来调用旧 InstallShield 应用程序的卸载程序。如何通过 Inno Setup 从 Windows 添加/删除程序调用卸载程序?如果我重复使用 InstallShield 版本的应用程序 ID 与 Inno Setup 相同,然后手动删除旧文件,这样可以吗?
您必须找到 InstallShield 卸载注册表项,该注册表项将驻留在以下任一位置HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
or HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
然后执行它的UninstallString
价值。完成后,删除注册表项:无法在 Inno Setup 中重复使用相同的项,因为它总是会追加_is1
给你的AppId
生成卸载注册表项名称。此外,在较旧的 Windows 版本上,由于长度限制,它还可能会截断此密钥名称并附加校验和。
做这一切从PrepareToInstall
事件函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)