tags:

views:

188

answers:

3

I am building an install file that needs at the end to install 2 other msi files at the end of the install. What is the best way to do this. I would prefer to make the additional installs optional but most of the users will require them on the computer for the application to be used properly.

+1  A: 

Generally this is referred to as a CustomAction in most installers. In my experience, additional MSI's must be chained together at the end of the installation using CustomActions, as it is not allowed to run more than one MSI installer at a time.

Robert Harvey
This got me started thanks.
Erin
A: 

Another option would be to use the completely free Inno Setup to package all three MSIs and have it run them one after the other. That way you get one single Setup.exe file that really installs your application running the three MSIs in a specified order.

If you search for "Inno Setup" here on SO, you may find answers to related questions regarding Inno Setup.

Thorsten Dittmar
+1  A: 

-Prior to MSI v4.5, it is not possible to have more than one .msi installer in the InstallExecute sequence at the same time. This pretty much precludes what you're trying to do.

-Beginning with MSI v4.5, Microsoft introduced the concept of "multi-package transactions", also called "chaining". More here:

Windows Installer blog

white paper

Unfortunately, the only OS with MSI v4.5 or later native is Windows 7. So, while MSI 4.5 will allow you to kick off multiple .msi files, you'll need to somehow bootstrap with the MSI 4.5 redistributable -- it requires a reboot in Windows Vista. :(

Your best bet is probably a stand-alone Setup.exe bootstrapper. You'll have to write something to show some dialog, allow the user to select what he wants to install, and then kick off the installs sequentially.

William Leara

related questions