I finished the initial release of my latest (and possibly last for a while) MSI plugin tonight. This one, MSI Command Launcher, extends the ability of custom actions to run user-defined code by:
- Supporting the execution of batch files (standard Setup & Deploy packages don't allow this)
- Allowing for roll-back of execution based upon the exit code returned from running a script/executable
- Provides a standardised Windows GUI for showing command-line input/output, rather than "shelling out" to a DOS box
MSI Command Launcher runs as a proper ProjectInstaller and can be run (i.e. tested) standalone from the command line. Documentation on usage is included in the archive that can be downloaded from: http://www.altervisitor.com/software/MSICommandLauncher.msi
When running, the application appears as follows:

This is a first release of this application, and I've not tested it as much as the others, so feedback would be great. The only problem I know about is if you're writing huge amounts of text to the console in an interactive script (one that requires user input) - the RichTextBox it writes to is pretty slow to update, meaning that input may be expected (and output blocked) before all of the preceeding text has been written to the screen. In applications that are more judicious in their usage of Console.WriteLine, and applications that don't read from the console, this problem won't exist.
If you do use this in your projects, please drop me a mail to let me know - I'd like to track the uptake of all the tools I put out on the Net, so I know which ones to support/extend.