brandon081518
Level 3

Problems with 32 and 64 bit driver install

Hello,

First, let me give a little background to my situation. Currently, I have an installer (MSI) that installs a 32 bit driver when installed. Recently, we have created a 64 bit version of the driver and need to distribute that too. Obviously, the ideal situation is to update the already existing MSI installer to figure out which platform the user is installing on and deliver the appropriate driver. I know that simply adding it to the installer doesn't work due to Difxapp and so I've tried a couple different avenues. I tried creating a merge module for each driver and associating each to a different feature but installshield apparently didn't like that either.

So now what I've done is create an installer for each driver package and make them feature prerequisites in the main MSI installer. This seemed to be going fine until I was testing the upgrade path from the previous installer. Basically, the installer is installing the feature prereq before removing the previous version (i.e. Major Upgrade) which actually completes the installation but the driver gets removed.

My question is is it ok to put the ISInstallPrerequisites into the Execute action after the RemoveExistingProducts action? Or is there a better solution?

I'm open to other solutions for the initial problem but everything that I have seen so far haven't seemed to be very elegant solutions.

Thanks!
Labels (1)
0 Kudos
4 Replies
weakness
Level 6

Hello.

I'm not sure whether you can do Major upgrade 32bit MSI to 64bit MSI.
But it looks like you tried it and you couldn't do it.

I guess in this case the most simple way is uninstalling the previous version and install the latest version without default Major upgrade mechanism.

Why don't you create wrapper Setup.exe which includes two type MSI installer(32/64) and uninstalls the previous version installer if it's needed.?

InstallScript custom codes can do it.

Q109075: HOWTO: Creating an InstallScript Wrapper
http://support.installshield.com/kb/view.asp?articleid=Q212514
0 Kudos
brandon081518
Level 3

Sorry if I didn't explain it quite right. I'm not trying to upgrade a 32 bit MSI to a 64 bit MSI. I currently have a 32 bit MSI that installs 32 bit components and a 32 bit driver (only installs the driver if ran on 32 bit machine). Now we have a 64 bit version of the driver. To keep it all in one package, I created separate MSI's for the 32 bit driver and 64 bit driver and then made them feature prerequisites for the original 32 bit MSI.

The problem that I ran into for upgrade is that the ISInstallPrerequisites action executes before the RemoveExistingProducts which means, on a 32 bit machine, the 32 bit driver is installed during the prereq action, but then the files are removed during the RemoveExistingProducts action. So my question was is there any reason why I can't put the ISInstallPrerequisites action after the RemoveExistingProducts action?

And if that isn't possible, the ultimate goal is to keep both drivers contained within one deliverable installer so if there is a better way to do that then I'm open to suggestions.
0 Kudos
brandon081518
Level 3

Oops I should have looked more into your link before responding. It looks like that may work for us.
0 Kudos
weakness
Level 6

bknoll22 wrote:
Oops I should have looked more into your link before responding. It looks like that may work for us.


I'm glad to hear that:)

Since it looked like you were trying to treat a msi installer as a Launcher which invokes another msi installers, I recommended that KB.

Just as far as I'm aware...
In any case, you should not do that configuration.
Generaly, msi which invokes another msi is not recommended.
( 'Feature prerequisites' is one of exception. )
0 Kudos