views:

1121

answers:

4

I have 3 projects in my solution that I want to deploy. Is there a nice and quick way of using Visual Studio's setup projects to deploy all three apps using one MSI and letting the user decide which apps he wants to install during the install process?

I have setup projects for the 3 individual apps, I also have an overarching setup project that has the output of those other three projects. Am I on the right track or is there a better way?

+1  A: 

I think you probably want merge modules. Accrding to MSDN:

A merge module is a standard feature of Microsoft Windows Installer that packages components together with any related files, resources, registry entries, and setup logic. You can use merge modules to install components that multiple applications share. You cannot install merge modules directly. You must merge them into deployment projects.

http://support.microsoft.com/kb/827025

In your case, each application would be a merge module and you would need to provide some UI to select which applications you would like to install. You could modify one of the default page templates to do that.

Damian Powell
A: 

hi Damian,

I also have a similar requirement, however i used merge modules but cant seem to find a way of selecting which specific msm to install and which not to. As i understand there is a no condition property which can be set on msm's while integrating them with msi's. Please let me know if there is some alternate way of doin so..

Thanks, Apn

You don't install a msm. An msm gets integrated into the msi. From the msi you can never see if it was the result of an msm. But why do you need that? Three MSMs in one MSI. Each in a different feature. Install the feature you want. Done.
Lars Truijens
I want to know how to exactly add features to an installer. I am using visual studio to generate the installer.Thanks,Apn
+1  A: 

If using WiX (which I suggest doing) then you break each project down into its components, each project would be represented as a Feature in WiX/MSI which you can do conditional installs on. The standard tree dialog on installers for selecting features is based on this and the WiX examples have a ready made UI that uses it.

As for merge modules the lead developer of WiX was involved in the early creation of the Merge Module specs and he reccomends using .wixlibs now. See Here

WiX v3 Docs

Rob McCready