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

ICE63 checks for proper sequencing of the RemoveExistingProducts action.

Note: The RemoveExistingProducts action goes through the product codes listed in the Upgrade column of the Upgrade table and removes the products in sequence by invoking nested installations. For each nested installation the installer sets the ProductCode property to the product code and sets the REMOVE property to the value in the Remove field of the Upgrade table. If the Remove field is blank, its value defaults to ALL and the installer removes the entire product.

The RemoveExistingProducts action has sequence restrictions and may be placed:

  • Between InstallValidate and InstallInitialize
  • Immediately after InstallInitialize, or after InstallInitialize if the actions between InstallInitialize and RemoveExistingProducts do not generate any script actions.
  • Immediately after InstallExecute or InstallExecuteAgain and before InstallFinalize (the same restriction as above applies).
  • After InstallFinalize.

Failure to fix a warning or error reported by ICE63 leads to failure of the upgrade.

When does ICE63 show up?

ICE63 posts a warning or error if the sequencing of the RemoveExistingProducts action is not correct.

How can I fix ICE63?

To fix ICE63, verify resequence the actions based on sequence restrictions of RemoveExistingProducts action.