ICEM12
ICEM12 comprueba que en una tabla ModuleSequence, las acciones estándar tienen números de secuencia y acciones personalizadas tienen valores BaseAction y After.
Este ICEM está disponible en el archivo Mergemod.cub proporcionado en el SDK de Windows Installer 2.0 y versiones posteriores. Para obtener más información, consulte componentes de Windows SDK para desarrolladores de Windows Installer.
Resultado
ICEM12 envía un error en los casos siguientes:
- Encuentra que el módulo contiene un acción estándar sin un número de secuencia.
- Busca que una acción estándar tiene valores especificados en los campos BaseAction o After de la tabla ModuleAdminUISequence, tabla ModuleAdminExecuteSequence, ModuleAdvtExecuteSequence tabla, ModuleInstallUISequence tablao ModuleInstallExecuteSequence tabla.
- Encuentra que el módulo contiene un acción personalizada sin valores especificados en la secuencia, Campos BaseAction o After de la tabla ModuleAdminUISequence, ModuleAdminExecuteSequence table, ModuleAdvtExecuteSequence table, ModuleInstallUISequence tableo ModuleInstallExecuteSequence table.
ICEM12 envía una advertencia si encuentra una acción personalizada que tiene especificado un número de secuencia, pero ningún valor en los campos BaseAction o After.
Tenga en cuenta que todas las acciones que se encuentran en la tabla customAction de se consideran acciones personalizadas. Todas las demás acciones se consideran acciones estándar.
Ejemplo
ICEM12 publica los siguientes mensajes de error y advertencia para un módulo que contiene las entradas de la base de datos que se muestran a continuación:
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.
Acción | Tipo | Fuente | Blanco |
---|---|---|---|
Action1 | 30 | source1 | target1 |
Action3 | 30 | source3 | target3 |
Acción | Secuencia | BaseAction | Después | Condición |
---|---|---|---|---|
Action2 | Action1 | 1 | verdadero | |
Action3 | verdadero |
Acción | Secuencia | BaseAction | Después | Condición |
---|---|---|---|---|
Action1 | 1 | verdadero |
Para corregir estos errores, pruebe lo siguiente:
- Quite el número de secuencia de la acción personalizada Action1 y use los campos BaseAction y After en su lugar.
- Escriba los valores en los campos Sequence, BaseAction o After para la acción personalizada Action3. Deje los campos BaseAction y After vacíos para la acción estándar Action2.
- No deje el campo Secuencia vacío para acción estándar Action2.
Temas relacionados