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

<xml/>

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

What does ICE40 check?

ICE40 does the following miscellaneous validation:

  • ICE40 checks if the .msi file is missing the Error table and the Page Count Summary Property is less than or equal to 100. This means that the installer is only capable of displaying numeric error codes to the user at run time. The Error table is only required in packages having a schema that is less than or equal to 100. Windows Installer versions 1.1 and later do not require the package to have an Error table because the error messages can also be retrieved using Msimsg.dll. Packages with a schema greater than 100 cannot be installed by Windows Installer version 1.0.
  • ICE40 checks if the REINSTALLMODE property has been overridden.
  • ICE40 also checks if the RemoveIniFile table has a Delete Tag entry with no value.

When does ICE40 show up?

  • ICE40 posts an error if the .msi file is missing the Error table and the Page Count Summary Property is less than or equal to 100.
  • ICE40 posts an error if REINSTALLMODE property is defined in the Property table.
  • ICE40 posts an error if there is a Delete Tag action in the in the RemoveIniFile column of the RemoveIniFile table without specifying a tag to delete in the Value column.

How can I fix ICE40?

  • If the .msi file is missing the Error table and the Page Count Summary Property is less than or equal to 100, add an Error table to the installation package and author formatting templates in the Message column for error messages.
  • If REINSTALLMODE property is defined in the Property table, remove it from the Property table. Defining the REINSTALLMODE property in .msi file can lead to unexpected behavior.
  • If there is a Delete Tag action in the in the RemoveIniFile column of the RemoveIniFile table without specifying a tag to delete in the Value column, add a tag to delete in the Value column of RemoveIniFile table for that specific record.