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

ICE69 checks that all substrings of the form [$componentkey] within a formatted string do not cross-reference components. A cross-component reference occurs when the [$componentkey] property of a formatted string refers to a component other than the component stored in the Component_ column of your tables.

Note: If a substring of the form [$componentkey] within a formatted string is found, it is replaced by the install directory of the component. If a component cross-references to another and both components do not belong to the same feature or contain different conditions, it is possible that they may not be installed at the same time causing such a substring above to be evaluated to NULL value. Such missing information may lead to application run-time problems.

When does ICE69 show up?

  • ICE69 returns an error if a [$componentkey] substring within a formatted string cross-references a component in another feature.
  • ICE69 returns a warning if a [$componentkey] substring within a formatted string cross-references a component in the same feature. (The FeatureComponents table is used to determine this mapping. It must map to the same feature for the warning. Referencing components in parent features or referencing components in child features is considered to be an error.)
  • ICE69 reports an error if the [#FileKey] substring within a formatted string references a file that is not present in the File table.

How can I fix ICE69?

To fix this error, do not cross-reference components. You must change the [$componentkey] to match its own component instead of another component.