在过去,我使用InstallAnywhere构建我的设置。现在我已经切换到InnoSetup作为我的新的安装提供程序。
在安装新的安装之前,我需要删除整个旧的安装。Innosetup识别旧安装程序并首先执行“旧”卸载程序,但旧安装程序不识别Innosetup的卸载程序。由于旧的设置已经存在,我无法更改这些配置。
如何使InstallAnywhere识别Innosetup卸载程序,而不更改InstallAnywhere配置?
windows是否使用某种“标准方式”来检查是否已经安装了相同的应用程序?
我已经尝试在Innosetup中创建InstallAnywhere注册表项,以“模拟”以前的InstallAnywhere卸载程序--但没有成功。
发布于 2016-02-29 07:03:49
我已经找到了InstallAnywhere存储自己的自定义“注册表”的位置。似乎所有Flexera产品都使用这种机制。
有一个XML C:\Program Files (x86)\Zero G Registry\.com.zerog.registry.xml,它包含有关所有已安装组件的信息。不幸的是,文件格式没有文档化,也没有包含对模式定义的任何引用。
我基本上得到了一个解决方案:我正在创建一个“虚拟”InstallAnywhere安装程序,它在InnoSetup安装过程中被静默地安装。它只用于做一件事: IA安装程序检测到的状态,并在卸载过程中调用InnoSetup卸载程序。
https://stackoverflow.com/questions/35652552
复制相似问题