I am packaging an application that has Hummingbird EXCEED 12.0 (32-bit)as the pre-requisite.We already have 2 more versions of EXCEED in our environment i.e. EXCEED 8.0(32-bit) and EXCEED 14.0(64 bit).My application will be deployed to both XP(32-bit) and Vista(64-bit).Now as EXCEED14.0 is a 64-bit application, so I assume that all my XP machines will not have this version installed as XP machines are 32-bit.In XP, we would have EXCEED 8.0.When my application will be installed in XP, EXCEED 12.0 will upgrade 8.0 and app would work fine here.
The problem starts when I test it on Vista machines.Vista can have both EXCEED 8.0 and EXCEED 14.0.When I test my application with EXCEED 8.0 already installed on system, it upgrades to EXCEED 12.0.So this is fine for me.However, when I test my application on Vista with EXCEED 14.0 installed on it, it does not let EXCEED 12.0 to be installed.I understand since 12.0 is a lower version, ideally it should not allow installas higher version(EXCEED 14.0) is already present in system.Bt my question here is that EXCEED 14.0 (which is already in system) is a 64-bit app which means it gets installed to C:\ProgramFiles....EXCEED 12.0 which my application is installing is 32-bit app and gets installed on C:\ProgramFilesx86.As %INSTALLDIR% is different, the applications should be able to co-exist in same system which is not happening in my case.EXCEED 14.0 does not allow EXCEED 12.0 to get installed.
Just to check the upgrade behaviour with another example, I just installed EXCEED 14.0(64-bit) on system and then installed EXCEED 8.0(32-bit).These 2 does co-exit which is strange or may be I am not able to get the behaviour of apps here.Please put some light on this.Thanks.
Community Chosen Answer
If you want both the applications to co-exist, then you need to remove the upgrade code in MSI which says and checks if a newer version is there. and you need to remove the references of it as well from the CA and tables.