I am looking to make an installer for a .net application which requires a few other MSI be run. Because of the restriction that you can only run one MSI at a time(honestly, is it 1995?) and my desire to provide configurability of which MSIs to run I can’t just shove the MSIs in a bootstrapper as seems to be the recommend practice. I found a similar question but no joy on the response.
As an alternative is there a .net based installer framework which could be used to customize the install process? I am familiar with IzPack, InstallJammer and NSIS but all of these use non-.net languages and this if for a .net shop who are a bit scared of other technologies.
WiX solves this problem if you’re okay using their UI or doing simply WiX-style UI.
if you want a richer UI experience you need to write a custom bootstrapper. I have solved this problem in the past by writing a customer bootstrapper which presented a unified UI to the user and made the install look like a single package where in reality the install was a collection of MSI files that were run in sequence.
Here’s the general gist of what I did:
The devil’s in the details, but it worked and it worked well!
Edit 9/3/2010 with more notes:
Here are some things to consider if you take this approach:
Basically, when authoring installs (whether single MSI or composite suite install) make sure you lay out ALL of your use-cases for the entire software lifecycle. It’s very easy to write an installer in a shortsighted manner and then find yourself painted into an unpleasant corner when v2 comes out.
Good luck 😉