ICEM12
ICEM12 überprüft, dass in einer ModulSequence-Tabelle Standardaktionen Sequenznummern und benutzerdefinierte Aktionen BaseAction- und After-Werte aufweisen.
Dieses ICEM ist in der Mergemod.cub-Datei im Windows Installer 2.0 SDK und höher verfügbar. Ausführliche Informationen finden Sie unter Windows SDK-Komponenten für Windows Installer-Entwickler.
Ergebnis
ICEM12 veröffentlicht in den folgenden Fällen einen Fehler:
- Es findet, dass das Modul eine Standardaktion enthält, ohne Sequenznummer.
- Es wird ermittelt, dass eine Standardaktion Werte enthält, die in die Felder BaseAction oder After der ModuleAdminUISequence-Tabelle, ModuleAdminExecuteSequence-Tabelle, ModuleAdvtExecuteSequence-Tabelle, ModuleInstallUISequence-Tabelleoder ModuleInstallExecuteSequence-Tabelle.
- Es findet, dass das Modul eine benutzerdefinierte Aktion enthält, ohne werte, die in die Sequenz eingegeben wurden. BaseAction- oder After-Felder der ModuleAdminUISequence-Tabelle, ModuleAdminExecuteSequence-Tabelle, ModuleAdvtExecuteSequence-Tabelle, ModuleInstallUISequence-Tabelleoder ModuleInstallExecuteSequence-Tabelle.
ICEM12 sendet eine Warnung, wenn eine benutzerdefinierte Aktion gefunden wird, die eine angegebene Sequenznummer, aber keinen Wert in den Feldern BaseAction oder After aufweist.
Beachten Sie, dass alle Aktionen in der CustomAction-Tabelle als benutzerdefinierte Aktionen betrachtet werden. Alle anderen Aktionen gelten als Standardaktionen.
Beispiel
ICEM12 veröffentlicht die folgenden Fehlermeldungen und Warnmeldungen für ein Modul, 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 | Art | Quelle | Ziel |
---|---|---|---|
Aktion1 | 30 | quelle1 | target1 |
Aktion3 | 30 | Quelle 3 | target3 |
Aktion | Reihenfolge | BaseAction | Nach | Zustand |
---|---|---|---|---|
Aktion2 | Aktion1 | 1 | STIMMT | |
Aktion3 | STIMMT |
Aktion | Reihenfolge | BaseAction | Nach | Zustand |
---|---|---|---|---|
Aktion1 | 1 | STIMMT |
Gehen Sie wie folgt vor, um diese Fehler zu beheben:
- 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" für die Standardaktion "Action2" leer.
- Lassen Sie das Feld "Sequenz" nicht leer für die Standardaktion "Action2".
Verwandte Themen