There are quite a few good tools and resources for MSI setup creation and debugging in the Platform SDK. I figured I’d list the ones I use most often, and I would really like to know what everyone else uses and if there are any holes in that you’ve found where new tools are needed…..
Descriptions for all of the tools in the PSDK can all be found at http://msdn.microsoft.com/library/en-us/msi/setup/windows_installer_development_tools.asp by the way….
Stuff I used every day when I worked on the VS and .NET Framework setup team:
- MSI.chm – the help file for Windows Installer, this is indispensible for looking up error codes, command line parameter permutations, descriptions of fields in the various tables, bitmask descriptions for things like file and component attributes, etc. There is one thing that drives me crazy though – trying to figure out the meaning of the different custom action attributes to determine exactly what you should expect for any given CA
- Orca – graphical viewer for the contents of an MSI, I have this installed on all of my machines, even on my new team. It can be scary to open up and look at random setups though – I’ve seen all sorts of horror stories over the past few years – both within MS and elsewhere.
Stuff I found very useful though I didn’t need to use them daily:
- MSIZap – removes the remnants of a failed install/uninstall from your machine. I strongly recommend using this only as a last resort – most of the times I use this it is because someone installed a daily build or an early beta of one of our products that had some kind of uninstall bug.
- MSIVal2 – performs internal consistency validation for MSI tables, this can be useful for catching MSI authoring errors that may not always manifest themselves in the form of a failure and roll-back of your setup.
- MSITran – lets you easily take the delta between 2 MSI packages and create a transform containing the differences. What I’ve used this for in the past is to modify some of the UI and add/remove launch conditions as a one-off for customers who weren’t familiar with the internal workings of an MSI in Orca.
There is a log analyzer tool on the site (wilogutl) that can help narrow down failures in your setup – it can be especially useful for verbose logs for large products such as Visual Studio (those logs are 40+ megs….) I usually take shortcuts before I use that tool though, most of the errors can be found by searching for “return value 3“ in your MSI verbose log file. This doesn’t work for non-English products because that string is translated, and it also relies on the setup author to log useful information for things like custom actions that may end up failing.
The other tools on the PSDK site sound like they’d be very useful as well but I don’t have first-hand experience with them.
What other stuff is out there that folks are using? What stuff is missing that needs to be written in this space? Thoughts?