Windows Installer
Unrestricted access to Windows Installer functionality!
Open Source
Open source!


Plain XML based source scripts!
Free, no strings attached!
Build Automation
Command-line interface for automated application build process!
Thriving community support!
Why WiX?

What does ICE56 check?

ICE56 validates that the directory structure of the .msi file has a single root directory, that the root is the TARGETDIR property, and that the SourceDir property value is in the DefaultDir column of the Directory table.

If a .msi file has multiple roots or specifies a root other than TARGETDIR, an administrative installation does not create a correct administrative image.

Note: Empty directories are not checked by ICE56. The directory structure passes validation with multiple root directories if the extra directories are empty.

When does ICE56 show up?

ICE56 posts an error if the .msi does not have a single root, TARGETDIR, or if SourceDir is not specified in the DefaultDir column of the Directory table.

How can I fix ICE56?

  • If directory TARGETDIR has a bad DefaultDir value, change the DefaultDir value to “SourceDir” or “SOURCEDIR”. It may be possible to make TARGETDIR the parent of the second root, and use the '.' value in the DefaultDir column.
  • If there is a root directory other than TARGETDIR set to “SourceDir” or “SOURCEDIR”, remove the second root directory. The Directory structure should have only one root called TARGETDIR.