如何在 InstallAnywhere 安装过程中删除 InnoSetup 安装?
How to remove InnoSetup Installation on InstallAnywhere Install Process?
过去我使用 InstallAnywhere 构建我的设置。我现在已切换到 InnoSetup 作为我的新设置提供商。
我需要在安装新的之前删除整个旧安装。 Innosetup 识别旧安装程序并首先执行 "old" 卸载程序,但旧安装程序不识别 Innosetup 的卸载程序。由于旧设置已经存在,我无法更改这些配置。
如何在不更改 InstallAnywhere 配置的情况下让 InstallAnywhere 识别 Innosetup 卸载程序?
是否有某种 "standard way" windows 用来检查是否已安装相同的应用程序?
我已经尝试在 Innosetup 中创建 InstallAnywhere 注册表项到 "simulate" 以前的 InstallAnywhere 卸载程序 - 但没有成功。
我找到了 InstallAnywhere 存储其自定义 "registry" 的位置。似乎所有 Flexera 产品都使用这种机制。
有一个 XML 文件 C:\Program Files (x86)\Zero G Registry\.com.zerog.registry.xml
,其中包含有关所有已安装组件的信息。不幸的是,文件格式没有记录,也不包含对架构定义的任何引用。
我基本上找到了一个解决方法:我正在创建一个 "dummy" InstallAnywhere 安装程序,它会在 InnoSetup 安装期间静默安装。它仅用于做一件事情:被 IA 设置检测到,并在卸载期间调用 InnoSetup 卸载程序。
过去我使用 InstallAnywhere 构建我的设置。我现在已切换到 InnoSetup 作为我的新设置提供商。
我需要在安装新的之前删除整个旧安装。 Innosetup 识别旧安装程序并首先执行 "old" 卸载程序,但旧安装程序不识别 Innosetup 的卸载程序。由于旧设置已经存在,我无法更改这些配置。
如何在不更改 InstallAnywhere 配置的情况下让 InstallAnywhere 识别 Innosetup 卸载程序?
是否有某种 "standard way" windows 用来检查是否已安装相同的应用程序?
我已经尝试在 Innosetup 中创建 InstallAnywhere 注册表项到 "simulate" 以前的 InstallAnywhere 卸载程序 - 但没有成功。
我找到了 InstallAnywhere 存储其自定义 "registry" 的位置。似乎所有 Flexera 产品都使用这种机制。
有一个 XML 文件 C:\Program Files (x86)\Zero G Registry\.com.zerog.registry.xml
,其中包含有关所有已安装组件的信息。不幸的是,文件格式没有记录,也不包含对架构定义的任何引用。
我基本上找到了一个解决方法:我正在创建一个 "dummy" InstallAnywhere 安装程序,它会在 InnoSetup 安装期间静默安装。它仅用于做一件事情:被 IA 设置检测到,并在卸载期间调用 InnoSetup 卸载程序。