Aaron Stebner's WebLog

Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio

MSI tools

MSI tools

  • Comments 19

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?


  • Hi Chris - Can you please use the instructions listed at http://blogs.msdn.com/astebner/archive/2005/03/29/403575.aspx to gather a verbose setup log file and then contact me via http://blogs.msdn.com/astebner/contact.aspx to send me the verbose log file so I can take a look and try to help narrow down the cause of this error on your system?
  • I was installing City Map for Garmin GPS when an error came up saying
    "Error: -1603 Fatal error durring installation.
    Consult Windows Installer Help(Msi.chm)or MSDN for more information."
  • Hi Len - Error 1603 is a generic error code that is returned by Windows Installer for many different types of errors.  You can use steps similar to the ones that I posted at http://blogs.msdn.com/astebner/archive/2005/03/29/403575.aspx to gather a verbose setup log that will help narrow down the root cause.  If you would like to zip and send me the verbose log at Aaron.Stebner (at) microsoft (dot) com, I will take a look and see if I can figure anything out.
  • To find any error in a MSI logfile, i use the MSI Logfile Analyzer. This Tool is verry usefull to view a logfile structured by files, properties and so one.

    Here you can find this tool: http://hoschi.biz

Page 2 of 2 (19 items) 12
Leave a Comment
  • Please add 3 and 7 and type the answer here:
  • Post