In the past I've build my setups using InstallAnywhere. I've now switched to InnoSetup as my new setup provider.
I need to remove the whole old installation before installing the new one. Innosetup recognises the old setup and executes the "old" uninstaller first, but the old setup doesn't recognise Innosetup's uninstaller. As the old setups are already out there, I can't change the configuration of these.
How to make InstallAnywhere recognise the Innosetup uninstaller, without being able to change the InstallAnywhere configuration?
Is there some kind of "standard way" that windows uses to check if the same application is already installed?
I've already tried to create the InstallAnywhere registry keys within Innosetup to "simulate" a previous InstallAnywhere uninstaller - without success.
I've found the location where InstallAnywhere stores its own custom "registry". Seems like all Flexera products use this mechanism.
There is an XML File C:\Program Files (x86)\Zero G Registry\.com.zerog.registry.xml
that contains information about all installed components. Unfortunately the file format is not documented, nor it contains any reference to a schema Definition.
I basically ended up with a workaround: I am creating a "dummy" InstallAnywhere setup, that gets silently installed during the InnoSetup installation. It is used to do only a single thing: Beeing detected by an IA setup, and call the InnoSetup uninstaller during uninstallation.