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

What does ICE38 check?

ICE38 validates that every component being installed under the current user's profile also specifies a registry key under the HKEY_CURRENT_USER root in the KeyPath column of the Component table.

In a roaming user profiles scenario where the application is installed for everyone, windows installer must take care of re-installing the user specific resources such as HKCU keys for the new user who did not originally install the application. Since key paths are verified and self healing is initiated (if necessary) when the application is launched through an advertised entry point, the way to get the user specific data back for a new user is to make an HKCU key as the key path of a component that installs the user data.

When does ICE38 show up?

ICE38 posts an error if a component installed under the user's profile does not specify a HKCU registry key.

How can I fix ICE38?

  • If a component with a file key path, installs to user profile, it must use a registry key under HKCU as its Key Path, not a file. To fix this error on the component, change the component key path type to registry key path and set the key path to a HKCU key.
  • If a component with a key path value set to NULL, installs to user profile, it must use a registry key under HKCU as its Key Path, not NULL. To fix this error on the component, change the component key path type to registry key path and set the key path to a HKCU key.
  • If a component with a registry key path value set to a HKLM registry key, installs to user profile, it must use a registry key under HKCU as its Key Path, not a HKLM registry key. To fix this error on the component, set the key path to a HKCU key.
  • If a component with a registry key path value set as NULL, installs to user profile, it must use a registry key under HKCU as its Key Path, not NULL. To fix this error on the component, set the key path to a HKCU key.
  • If the Registry entry referenced in the KeyPath column of the component was found and lies under the HKCU tree, but the registry entry's Component_ column does not refer back to the same component that listed it as the KeyPath, this means that the registry entry used as the KeyPath of the component would only be created when some other component was installed. To fix this error change the KeyPath value to refer to a registry entry that belongs to the component, or change the registry entry to belong to the component using it as a KeyPath.