ICEM12
ICEM12 vérifie que dans une table ModuleSequence, les actions standard ont des numéros de séquence et les actions personnalisées ont des valeurs BaseAction et After.
Cet ICEM est disponible dans le fichier Mergemod.cub fourni dans le Kit de développement logiciel (SDK) Windows Installer 2.0 et versions ultérieures. Pour plus d’informations, consultez Composants du SDK Windows pour les développeurs Windows Installer.
Résultats
ICEM12 publie une erreur dans les cas suivants :
- il constate que le module contient une action standard sans numéro de séquence.
- il constate qu’une action standard a des valeurs entrées dans les champs BaseAction ou After de la table ModuleAdminUISequence, de la table ModuleAdminExecuteSequence, de la table ModuleAdvtExecuteSequence, de la table ModuleInstallUISequence ou de la table ModuleInstallExecuteSequence.
- il constate que le module contient une action personnalisée sans aucune valeur entrée dans les champs Sequence, BaseAction ou After de la table ModuleAdminUISequence, de la table ModuleAdminExecuteSequence, de la table ModuleAdvtExecuteSequence, de la table ModuleInstallUISequence ou de la table ModuleInstallExecuteSequence.
ICEM12 publie un avertissement s’il constate une action personnalisée avec un numéro de séquence spécifié, mais aucune valeur dans les champs BaseAction ou After.
Notez que toutes les actions trouvées dans la table CustomAction sont considérées comme des actions personnalisées. Toutes les autres actions sont considérées comme des actions standard.
Exemple
ICEM12 publie les messages d’erreur et d’avertissement suivants pour un module qui contient les entrées de base de données indiquées ci-dessous :
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.
Action | Type | Source | Cible |
---|---|---|---|
Action1 | 30 | source1 | target1 |
Action3 | 30 | source3 | target3 |
Action | Séquence | BaseAction | Après | Condition |
---|---|---|---|---|
Action2 | Action1 | 1 | true | |
Action3 | true |
Action | Séquence | BaseAction | Après | Condition |
---|---|---|---|---|
Action1 | 1 | true |
Pour résoudre ces erreurs, essayez les solutions suivantes :
- Supprimez le numéro de séquence de l’action personnalisée Action1 et utilisez les champs BaseAction et After à la place.
- Entrez des valeurs dans les champs Sequence, BaseAction ou After pour l’action personnalisée Action3. Laissez les champs BaseAction et After vides pour l’action standard Action2.
- Ne laissez pas le champ Sequence vide pour l’action standard Action2.
Rubriques connexes