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 ICE61 check?

ICE61 checks the upgrade table to ensure that the following conditions are true:

  • All ActionProperty properties are not pre-authored in the Property table.
  • All ActionProperty properties are Public Properties.
  • All ActionProperty properties are included in the SecureCustomProperties property (i.e., they are restricted public properties).
  • All ActionProperty properties are unique to each record in the Upgrade table.
  • All VersionMax values are not less than the corresponding VersionMin values.
  • No attempt is made to remove a newer or equal version of the current product.

Failure to fix a warning or error reported by ICE61 generally leads to problems in upgrading your application. Depending on the exact error, this could be anything from leaving files from the older version behind, deleting files from the older version even though they are needed by the new application, or complete failure of the upgrade.

When does ICE61 show up?

ICE61 posts a warning or error if any of the above conditions are not true.

How can I fix ICE61?

  • If the VersionMax value in the Upgrade table is NOT less than the product version in the Property table (i.e., ProductVersion), the installer will try to remove the product of the same version or higher. To fix this error, use a version in the VersionMax column lower than the current version specified in the Property table. Remove the “Include maximum version” option if Maximum Version is equal to the current version. If the intent is only to detect the product and not remove it, specifying “Detect Only” will also fix this error.
  • If the ActionProperty is not listed in the SecureCustomProperties property, the property is not passed to the server side of the install when the property is found. To fix this error, add the property to SecureCustomProperties (i.e., make it a restricted public property).
  • If the ActionProperty contains lowercase letters, edit the property name to have all uppercase letters. Upgrade properties must be public properties for the result to be passed to the server side of the installation.
  • If the same ActionProperty is used for more than one record of the Upgrade table, use a different property for the second record. A property can only be used in one row of the Upgrade table.
  • If Upgrade.VersionMax is less than Upgrade.VersionMin, update the VersionMax value to be higher than VersionMin. The minimum version must be less than the maximum version.