ICEM12
O ICEM12 verifica se em uma tabela ModuleSequence, as ações padrão têm números de sequência 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 posterior. Para obter detalhes, consulte Windows SDK Components for Windows Installer Developers.
Resultado
O ICEM12 publica um erro nos seguintes casos:
- Ele descobre que o módulo contém um de ação padrão sem um número de sequência.
- Ele descobre que uma ação padrão tem valores inseridos nos campos BaseAction ou After da tabela ModuleAdminUISequence, tabela ModuleAdminExecuteSequence, tabela ModuleAdvtExecuteSequence, tabela ModuleInstallUISequenceou tabela ModuleInstallExecuteSequence.
- Ele localiza que o módulo contém uma de ação personalizada sem valores inseridos nos campos Sequence, BaseAction ou After da tabela ModuleAdminUISequence, da tabela ModuleAdminExecuteSequence, da tabela ModuleAdvtExecuteSequence, da tabela ModuleInstallUISequence ou tabela ModuleInstallExecuteSequence.
O ICEM12 publica um aviso se encontrar uma ação personalizada que tenha um número de sequência 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
ICEM12 posta as seguintes mensagens de erro e 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.
Ação | Tipo | Fonte | Público-alvo |
---|---|---|---|
Ação1 | 30 | fonte1 | Objetivo1 |
Ação3 | 30 | fonte3 | Público-alvo3 |
Ação | Sequência | BaseAction | Após | Condição |
---|---|---|---|---|
Ação2 | Ação1 | 1 | verdadeiro | |
Ação3 | verdadeiro |
Ação | Sequência | BaseAction | Após | Condição |
---|---|---|---|---|
Ação1 | 1 | verdadeiro |
Para corrigir esses erros, tente o seguinte:
- Remova o número de sequência da ação personalizada Action1 e use os campos BaseAction e After em vez disso.
- Insira valores nos campos Sequence, BaseAction ou After para a ação personalizada Action3. Deixe os campos BaseAction e After vazios para a ação padrão Action2.
- Não deixe o campo Sequência vazio para a ação padrão Action2.
Tópicos relacionados