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?
ICE65

What does ICE65 check?

ICE65 checks that the Environment table does not have invalid prefix or append values.

Note: The Environment table is used to set the values of environment variables.
Failure to fix a warning or error reported by ICE65 generally leads to problems in install, uninstall, or repair of the environment variable. For example, only some values of a particular variable may be removed if one or more of the values for that variable have a trailing separator.

The following is the list of valid prefixes for environment variable names:

  • “=” Create the environment variable if it does not exist, and then set it during installation. If the environment variable exists, set it during the installation.
  • “+” Create the environment variable if it does not exist, then set it during installation. This has no effect on the value of the environment variable if it already exists.
  • “-“ Remove the environment variable when the component is removed. This symbol can be combined with any prefix.
  • “!” Remove the environment variable during an installation. The installer only removes an environment variable during an installation if the name and value of the variable match the entries in the Name and Value fields of the Environment table. If you want to remove an environment variable, regardless of its value, use the '!' syntax, and leave the Value field empty.
  • “*” This prefix is used with Microsoft Windows NT/Windows 2000 to indicate that the name refers to a system environment variable. If no asterisk is present, the installer writes the variable to the user's environment. Microsoft Windows 95/98 ignores the asterisk and add the environment variable to autoexec.bat. This symbol can be combined with any prefix. A package that is used for per-machine installations should write environment variables to the machine's environment by including * in the Name column. For more information, see Remarks.
  • “=-“ The environment variable is set on install and removed on uninstall. This is the usual behavior.
  • “!-“  Removes an environment variable during an install or uninstall.

Value column in the Environment table is used to append values to existing environment variables if necessary.

  • To append a value to the end of an existing variable, prefix the string in this field by the Null character [~] and the separator character. For example, if the semicolon is the chosen separator: [~];Value.
  • To prefix a value to the front of an existing variable, append the string in this field by the separator character and the Null character [~]. For example, if the semicolon is the chosen separator: Value;[~] .
  • If no [~] is present in the field, the string represents the entire value to be set or deleted.
  • Each row can contain only one value. For example, the entry Value;Value;[~] is more than one value and should not be used because it causes unpredictable results. The entry Value;[~] is just one value.
  • If Name is prefixed with +, then [~] must not be used in Value column. This is because the meaning of "+" and "[~]" are clearly exclusive of one another.

When does ICE65 show up?

ICE65 posts a warning or an error if the environment table has invalid prefix or append values.

How can I fix ICE65?

To fix ICE65, use valid prefix and/or append values based on Environment table guidelines mentioned above.