Compartilhar via


ICEM02

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

As ICEs do módulo de mesclagem são armazenadas em um arquivo .cub do módulo de mesclagem chamado Mergemod.cub e não no arquivo .cub que contém as ICEs usadas para validação de pacote.

Resultado

O ICEM02 postará mensagens de erro se o banco de dados do módulo tentar especificar dependências ou exclusões que não se relacionam com o módulo atual. O ICEM02 postará uma mensagem de erro se o banco de dados do módulo tentar especificar o módulo atual como dependente ou 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!

da Tabela ModuleSignature

ModuleID Idioma Versão
MyModule.guid1 1033 1.0

 

de tabela ModuleDependency

ModuleID ModuleLanguage RequiredID RequiredLanguage RequiredVersion
OtherModule.guid2 1033 OtherModule.guid3 do 0 1.0
MyModule.guid1 1033 MyModule.guid1 1033 1.2

 

da tabela ModuleExclusion (parcial)

ModuleID ModuleLanguage ExcludedID ExcludedLanguage
OtherModule.guid2 1033 OtherModule.guid3 do 0
MyModule.guid1 1033 MyModule.guid1 1033

 

O módulo de mesclagem ICE posta o primeiro erro porque a 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 publica 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 excluir 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 publica o quarto erro porque um módulo não pode especificar que ele se exclua.

Referência do ICE do módulo de mesclagem