Link to article describing how to interpret Windows Installer log files

I often get asked questions about how to read, interpret and find error information in verbose Windows Installer log files.  These logs tend to be very long, and it can be difficult to filter out noise in order to find the truly useful information needed for debugging purposes.  In the past, I posted an item describing how to locate the cause of error code 1603 in a Windows Installer log file -, but this technique is only one of many useful strategies for analyzing verbose log files.

Today, I was catching up on some of the blog posts from blogs I subscribe to, and I noticed an item on the Windows Installer team blog that I wanted to also link to here.  The Windows Installer blog links to another blog post providing details about how to interpret Windows Installer logs.  You can find this blog post at

This post includes the following useful information:

  • How to enable verbose logging
  • Descriptions of general log file entries
  • Information about error codes
  • Return value meanings
  • Link to an annotated verbose log file
  • Information about the Windows Installer Verbose Log Analyzer (wilogutl.exe) tool that is included in the Windows Installer SDK

I encourage you to take a look at this blog post, especially the annotated log file and the wilogutl.exe tool, if you are a setup developer and/or need to debug MSI-based setups.

Comments (3)

  1. samjac says:

    I’m fairly certain this is not the correct place for this question but I thought I’d pose it to get started.  

    I schedule RemoveExistingProducts after InstallValidate and before InstallInitialize (not the most efficient I know).  In some upgrade situations I’m getting the following log entries and the uninstall is not happening:

    08-09-2007,15:11:13 :  Action start 15:11:13: RemoveExistingProducts.

    08-09-2007,15:11:13 :  Application: {9EB4265A-37BC-4B50-B2F9-43D22CC6C7F3}, Command line: UPGRADINGPRODUCTCODE={CDDF3558-D26B-47BF-A044-BB5DFA71AD92}  CLIENTUILEVEL= REMOVE=ALL

    This is a per-machine install and I’m not sure why the command line is malformed with CLIENTUILEVEL= REMOVE=ALL.  Any ideas?

  2. Hi Samjac – I haven’t seen an issue like this before.  I think this command line looks fine – it is setting the CLIENTUILEVEL to a blank value, and then setting REMOVE=ALL to do a full uninstall.  Is there information later in the log file that indicates why the uninstall is failing?

Skip to main content