过去我使用InstallAnywhere构建我的设置。我现在已切换到InnoSetup作为我的新设置提供商。
我需要在安装新安装之前删除整个旧安装。 Innosetup识别旧设置并执行" old"首先是卸载程序,但旧的设置并不能识别Innosetup的卸载程序。由于旧设置已经存在,我无法更改这些配置。
如何使InstallAnywhere能够识别Innosetup卸载程序,而无法更改InstallAnywhere配置?
是否有某种"标准方式" Windows用来检查是否已安装相同的应用程序?
我已经尝试在Innosetup中创建InstallAnywhere注册表项,以模拟"以前的InstallAnywhere卸载程序 - 没有成功。
答案 0 :(得分:1)
我找到了InstallAnywhere存储自己的自定义"注册表"的位置。似乎所有Flexera产品都使用这种机制。
有一个XML文件C:\Program Files (x86)\Zero G Registry\.com.zerog.registry.xml
,其中包含有关所有已安装组件的信息。遗憾的是,文档格式没有记录,也没有包含对模式定义的任何引用。
我基本上得到了一个解决方法:我正在创建一个"虚拟" InstallAnywhere安装程序,在InnoSetup安装期间以静默方式安装。它仅用于执行一项操作:通过IA设置检测到Beeing,并在卸载期间调用InnoSetup卸载程序。