ICEM02

ICEM02 comprueba si todas las dependencias y exclusiones del módulo están relacionadas con el módulo actual.

Los ICE de módulo de combinación se almacenan en un archivo .cub de módulo de combinación denominado Mergemod.cub y no en el archivo .cub que contiene los ICE que se usan para la validación de paquetes.

Resultado

ICEM02 muestra mensajes de error si la base de datos del módulo intenta especificar dependencias o exclusiones que no están relacionadas con el módulo actual. ICEM02 muestra un mensaje de error si la base de datos del módulo intenta especificar el módulo actual como dependiente o excluido de sí mismo.

Ejemplo

ICEM02 mostraría el siguiente mensaje de error para un módulo que contiene las entradas de la base de datos que se indican a continuación.

The dependency OtherModule.GUID2.1033.OtherModule.GUID3.0 in the 
ModuleDependency table creates a dependency for an unrelated module. A 
module can only define dependencies for itself

This module is listed as depending on itself!

The exclusion OtherModule.GUID2.1033.OtherModule.GUID3.0 in the 
ModuleExclusion table creates an excluded module for an unrelated 
module. A module can only define exclusions for itself.

This module excludes itself from the target database!

Tabla ModuleSignature

ModuleID Idioma Versión
MyModule.GUID1 1033 1.0

 

Tabla ModuleDependency

ModuleID ModuleLanguage RequiredID RequiredLanguage RequiredVersion
OtherModule.GUID2 1033 OtherModule.GUID3 0 1.0
MyModule.GUID1 1033 MyModule.GUID1 1033 1,2

 

Tabla ModuleExclusion (parcial)

ModuleID ModuleLanguage ExcludedID ExcludedLanguage
OtherModule.GUID2 1033 OtherModule.GUID3 0
MyModule.GUID1 1033 MyModule.GUID1 1033

 

El módulo de combinación ICE muestra el primer error porque la primera fila de la tabla ModuleDependency no especifica una dependencia necesaria para el módulo actual especificado en la tabla ModuleSignature. Las dependencias de un módulo solo se pueden especificar en su propia tabla ModuleDependency. Si el módulo actual requiere OtherModule.GUID3, reemplace las dos primeras columnas de la fila por los datos de la tabla ModuleSignature. Si este módulo no requiere OtherModule.GUID3, elimine esta fila.

El módulo de combinación ICE muestra el segundo error porque un módulo no puede especificar una dependencia de sí mismo.

El módulo de combinación ICE muestra el tercer error porque la primera fila de la tabla ModuleExclusion no especifica una exclusión necesaria para el módulo actual especificado en la tabla ModuleSignature. Las exclusiones de un módulo solo se pueden especificar en su propia tabla ModuleExclusion. Si el módulo actual excluye OtherModule.GUID3, reemplace las dos primeras columnas de la fila por los datos de la tabla ModuleSignature. Si el módulo actual no excluye OtherModule.GUID3, elimine esta fila.

El módulo de combinación ICE muestra el cuarto error porque un módulo no puede especificar que se excluya a sí mismo.

Referencia ICE del módulo de combinación