views:

627

answers:

2

For my application, I need to install the main application and allow users to pick and choose one or more additional features to install. I tried to run the main msi and have a custom action to install other feature msi files. However, it doesn't work since MSI doesn't support nested installation. Should I build a window application and give the users the choices and internally call msi files sequentially? The additional msi files are custom applications that we built. They are not pre-requisites. We separated these features into different msi files because we want to make changes to the features msi files without recompile the main msi file. Please help!

Thank you. Amy Pham

+1  A: 

As MSI does not support nested installations (yet) you will have to create a so-called bootstrapper. This is a separate .exe file normally named setup.exe. The purpose of this exe is to (download and) install the pre-requisites of your MSI before your MSI is launched.

A bootstrapper can e.g. be generated using Visual Studio.

See this related question:

How to create installer inside another installer?

0xA3
Thanks Divo, I was hoping that you are online. I saw some of your answers and thought that you would be the perfect person to help me out. These msi files are not pre-requisites. These msi files are custom applications that interact with the main application. From what I understand, a bootstrapper is to install pre-requisites only. For my scenarios, I will run the main msi and provide a user interface dialog box to allow users to pick additional application. For all additional application that are checked, I need to install those msi files. Please help. Thanks
Amy Pham
Then maybe this question might also be interesting to you: http://stackoverflow.com/questions/295138/how-to-deploy-multiple-projects-in-a-single-msi
0xA3
since my features are msi files, I don't know how to do conditional installs. I thought I could use custom action to install these msi files but as you pointed out, msi doesn't support nested installation.
Amy Pham
Unless you're going to require MSI 4.5 or better, nested/chained MSI installations are not supported. divo's referenced article on merge modules (MSM) is what you want, I think, particularly if the custom apps are not separately installable.
DaveE
A: 

I think the short answer is that you can't do what you described using an MSI. Since Windows Installer only allows a single MSI to be installing at a time, you may need to write a non-MSI application that can present a UI, and install the MSIs sequentially based on the user's choices. You can use the MSIs as external resources if you don't want to compile them into your main setup program.

CodeSavvyGeek
Thanks CodeSawyGeek, I decided the same thing. I just wanted to ask this question just in case if there are different solutions that I don't know. I already developed an application to do this.
Amy Pham
Well, *now* you can using MSI 4.5 or later. Last I looked, the penetration of those versions is pretty ow.
DaveE

related questions