In this article

ICE02

05/31/2018

2 minutes to read

In this article

ICE02 validates that certain references between the Component, File, and Registry tables are reciprocal. These references must to be reciprocal for the installer to correctly determine the installation state of components.

The installer uses the KeyPath column of the Component table to detect the presence of the component listed in the Component column. The KeyPath column contains a key into the Registry or File tables. Both of these tables have a Component_ column that contains a key back into the Component table pointing to the component that controls the registry entry or file. These references must be reciprocal.

Result

ICE02 posts an error message if it finds a reference that should be reciprocal and is not.

Example

ICE02 would post the following error message for a .msi file containing the database entries shown.

File: 'Red_File' cannot be the key file for Component: 'Blue'. The file belongs to Component: 'Red'

Component Blue references Red_File, but Red_File is not controlled by Component Blue and therefore cannot be the KeyPath file. If the installer were called to get the installation state of Blue it would incorrectly check whether Red_File was installed. Changing the KeyPath field for Blue in the Component Table to Blue_File fixes the error.

Related topics

The feedback system for this content will be changing soon. Old comments will not be carried over. If content within a comment thread is important to you, please save a copy. For more information on the upcoming change, we invite you to read our blog post.