ICE02

ICE02 valida que determinadas referencias entre las tablas Component, File y Registry son recíprocas. Estas referencias deben ser recíprocas para que el instalador determine correctamente el estado de instalación de los componentes.

El instalador usa la columna KeyPath de la tabla Component para detectar la presencia del componente que se indica en la columna Component. La columna KeyPath contiene una clave para las tablas Registry o File. Estas dos tablas tienen una columna Component_ que contiene una clave para la tabla Component que apunta al componente que controla la entrada del Registro o el archivo. Estas referencias deben ser recíprocas.

Resultado

ICE02 muestra un mensaje de error si encuentra una referencia que debe ser recíproca y no lo es.

Ejemplo

ICE02 muestra el siguiente mensaje de error para un archivo .msi que contiene las entradas de la base de datos que se indican.

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

Tabla Component (parcial)

Componente KeyPath
Rojo Red_File
Azul Red_File

 

Tabla File (parcial)

Columna File Component_
Red_File Rojo
Blue_File Azul

 

El componente Blue hace referencia a Red_File, pero Red_File no está controlado por el componente Blue y, por tanto, no puede ser el archivo KeyPath. Si se llamara al instalador para obtener el estado de instalación de Blue, comprobaría incorrectamente si se ha instalado Red_File. Cambiando el campo KeyPath para Blue en la tabla Component a Blue_File se corrige el error.

Referencia de ICE