I’m using a Visual Studio Setup Project to create a setup program for my new Windows program (single EXE file). The only thing it seems to be missing is a way to run a component installer. I need to bundle and run a separate installer EXE with my program, but whenever I try to run it as a custom action, I get the “nested installer” error (You cannot run a setup within a setup).
So, short of buying a commercial installation program ($$$$), is there a way to write a custom action to do this? I’ve seen a few tutorials on this, and it doesn’t look that intimidating, but I’m worried about getting the custom action to run after (or before) that setup transaction lock is freed so the next installer can run.
Suggestions?
Thanks!
Basically what you want, in MSI terms, is a Custom Bootstraper. Setup and Deployment projects have limited support for this. Adding Custom Prerequisites (latest version) details how to add pre-requisites to the built-in bootstrapper.
Unfortunately Setup and Deployment projects are not supported in Visual Studio 2012; so, spending much time on something like this may not add much long term value.
WiX is another MSI installer framework that is recommended by folks at Microsoft (the authors work at Microsoft). It has a feature that it calls Bundling that allows chaining of MSIs (via its bootstrapper). It’s really easy to create a WiX project from and existing MSI using a utility called Dark (http://weblogs.asp.net/lorenh/archive/2004/05/09/128899.aspx is a good intro to using Dark). Once you get that can edit the wxs file to add a bundle.
Other Wix resources: http://wix.tramontana.co.hu/tutorial