ICEM12

ICEM12 verifica se, em uma tabela ModuleSequence, as ações padrão têm números sequenciais e as ações personalizadas têm valores BaseAction e After.

Esse ICEM está disponível no arquivo Mergemod.cub fornecido no SDK do Windows Installer 2.0 e versões posteriores. Para obter detalhes, confira Componentes do SDK do Windows para desenvolvedores do Windows Installer.

Result

ICEM12 posta um erro nos seguintes casos:

O ICEM12 postará um aviso se encontrar uma ação personalizada que tenha um número sequencial especificado, mas nenhum valor nos campos BaseAction ou After.

Observe que todas as ações encontradas na tabela CustomAction são consideradas ações personalizadas. Todas as outras ações são consideradas ações padrão.

Exemplo

O ICEM12 posta as seguintes mensagens de erro e de aviso para um módulo que contém as entradas de banco de dados mostradas abaixo:

Error. Custom actions should use the BaseAction and After fields and not use the 
Sequence field in the Module Sequence tables. The custom action 'Action1' uses the Sequence field 
and does not use the BaseAction and After fields in the ModuleInstallExecuteSequence table. 
    
Error. Custom actions should not leave the Sequence, BaseAction, and After fields 
of the Module Sequence tables all empty. The custom action 'Action3' leaves the Sequence, 
BaseAction, and After fields empty in the ModuleAdminExecuteSequence table.

Error. Standard actions should not use the BaseAction and After fields in Module 
Sequence tables. The standard action 'Action2' has a values entered in the BaseAction 
or After fields of the ModuleAdminExecuteSequence table.

Error. Standard actions must have a entry in the Sequence field of Module Sequence 
tables. The standard action 'Action2' does not have a Sequence value in the 
ModuleExecuteSequence table.

CustomAction

Ação Tipo Fonte Destino
Action1 30 source1 target1
Action3 30 source3 target3

 

ModuleAdminExecuteSequence

Ação Sequência BaseAction After (após) Condição
Action2   Action1 1 true
Action3       true

 

ModuleInstallExecuteSequence

Ação Sequência BaseAction After (após) Condição
Action1 1     true

 

Para corrigir esses erros, tente o seguinte:

  • Remova o número sequencial da ação personalizada Action1 e use os campos BaseAction e After.
  • Insira valores no campo Sequence, BaseAction ou After da ação personalizada Action3. Deixe os campos BaseAction e After vazios para a ação padrão Action2.
  • Não deixe o campo Sequence vazio para a ação padrão Action2.

Referência ICE do módulo de mesclagem