ICEM02

O ICEM02 verifica se todas as dependências e exclusões do módulo estão relacionadas ao módulo atual.

Os ICEs do módulo de mesclagem são armazenados em um arquivo .cub do módulo de mesclagem chamado Mergemod.cub e não no arquivo .cub que contém os ICEs usados para validação de pacote.

Result

O ICEM02 posta mensagens de erro caso o banco de dados do módulo tente especificar dependências ou exclusões que não estão relacionadas ao módulo atual. O ICEM02 posta uma mensagem de erro caso o banco de dados do módulo tente especificar o módulo atual como dependente ou como excluído por si mesmo.

Exemplo

O ICEM02 postaria as seguintes mensagens de erro para um módulo que contém as entradas de banco de dados mostradas abaixo.

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!

Tabela ModuleSignature

ModuleID Idioma Versão
MyModule.GUID1 1033 1.0

 

Tabela ModuleDependency

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

 

Tabela ModuleExclusion (parcial)

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

 

O módulo de mesclagem ICE posta o primeiro erro devido à primeira linha na Tabela ModuleDependency, que não especifica uma dependência necessária para o módulo atual especificado na Tabela ModuleSignature. As dependências de um módulo só podem ser especificadas em sua própria Tabela ModuleDependency. Se OtherModule.GUID3 é exigido pelo módulo atual, substitua as duas primeiras colunas da linha pelos dados da Tabela ModuleSignature. Se OtherModule.GUID3 não é exigido por este módulo, exclua essa linha.

O módulo de mesclagem ICE posta o segundo erro porque um módulo não pode especificar uma dependência em si mesmo.

O módulo de mesclagem ICE posta o terceiro erro devido à primeira linha na Tabela ModuleExclusion, que não especifica uma exclusão necessária para o módulo atual especificado na Tabela ModuleSignature. As exclusões de um módulo só podem ser especificadas em sua própria Tabela ModuleExclusion. Se o módulo atual exclui OtherModule.GUID3, substitua as duas primeiras colunas da linha pelos dados da Tabela ModuleSignature. Se o módulo atual não excluir OtherModule.GUID3, exclua essa linha.

O módulo de mesclagem ICE posta o quarto erro porque um módulo não pode especificar que ele se exclua.

Referência ICE do módulo de mesclagem