ICEM12
ICEM12 überprüft, ob Standardaktionen in einer ModuleSequence-Tabelle Sequenznummern und ob benutzerdefinierte Aktionen BaseAction- und After-Werte aufweisen.
Dieses ICEM ist in der Datei „Mergemod.cub“ verfügbar, die im Windows Installer 2.0 SDK und höher bereitgestellt wird. Ausführliche Informationen finden Sie unter Windows SDK-Komponenten für Windows Installer-Entwickler*innen.
Ergebnis
ICEM12 gibt in den folgenden Fällen einen Fehler aus:
- Es wird festgestellt, dass das Modul eine Standardaktion ohne Sequenznummer enthält.
- Es wird festgestellt, dass für eine Standardaktion Werte in den Feldern „BaseAction“ oder „After“ der Tabellen ModuleAdminUISequence, ModuleAdminExecuteSequence, ModuleAdvtExecuteSequence, ModuleInstallUISequence oder ModuleInstallExecuteSequence vorhanden sind.
- Es wird festgestellt, dass das Modul eine benutzerdefinierte Aktion ohne Werte in den Feldern „Sequence“, „BaseAction“ oder „After“ der Tabellen ModuleAdminUISequence, ModuleAdminExecuteSequence, ModuleAdvtExecuteSequence, ModuleInstallUISequence oder ModuleInstallExecuteSequence enthält.
ICEM12 gibt eine Warnung aus, wenn eine benutzerdefinierte Aktion gefunden wird, für die eine Sequenznummer angegeben ist, aber keine Werte in den Feldern „BaseAction“ oder „After“.
Beachten Sie, dass alle in der CustomAction-Tabelle gefundenen Aktionen als benutzerdefinierte Aktionen gelten. Alle anderen Aktionen werden als Standardaktionen betrachtet.
Beispiel
ICEM12 gibt die folgenden Fehler- und Warnmeldungen für ein Modul aus, das die unten gezeigten Datenbankeinträge enthält:
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.
Aktion | type | `Source` | Ziel |
---|---|---|---|
Action1 | 30 | Quelle1 | target1 |
Action3 | 30 | source3 | target3 |
Aktion | Sequenz | BaseAction | Nach | Bedingung |
---|---|---|---|---|
Action2 | Action1 | 1 | true | |
Action3 | true |
Aktion | Sequenz | BaseAction | Nach | Bedingung |
---|---|---|---|---|
Action1 | 1 | true |
Um diese Fehler zu beheben, versuchen Sie Folgendes:
- Entfernen Sie die Sequenznummer für die benutzerdefinierte Aktion „Action1“, und verwenden Sie stattdessen die Felder „BaseAction“ und „After“.
- Geben Sie Werte in die Felder „Sequence“, „BaseAction“ oder „After“ für die benutzerdefinierte Aktion „Action3“ ein. Lassen Sie die Felder „BaseAction“ und „After“ leer für die Standardaktion „Action2“.
- Lassen Sie das Feld „Sequence“ für die Standardaktion „Action2“ nicht leer.
Zugehörige Themen