ICEM12

ICEM12 überprüft, ob Standardaktionen in einer ModuleSequence-Tabelle Sequenznummern und benutzerdefinierte Aktionen BaseAction- und After-Werte enthalten.

Dieses ICEM ist in der Datei Mergemod.cub verfügbar, die im Windows Installer 2.0 SDK und höher bereitgestellt wird. Weitere Informationen finden Sie unter Windows SDK Components for Windows Installer Developers.

Ergebnis

ICEM12 gibt in den folgenden Fällen einen Fehler aus:

ICEM12 gibt eine Warnung aus, wenn eine benutzerdefinierte Aktion gefunden wird, für die eine Sequenznummer, aber kein Wert in den Feldern BaseAction oder After angegeben ist.

Beachten Sie, dass alle In der CustomAction-Tabelle gefundenen Aktionen als benutzerdefinierte Aktionen betrachtet werden. Alle anderen Aktionen werden als Standardaktionen betrachtet.

Beispiel

ICEM12 stellt die folgenden Fehler- und Warnmeldungen für ein Modul mit den unten gezeigten Datenbankeinträgen zur Verfügung:

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.

CustomAction

Aktion type Source Ziel
Action1 30 source1 target1
Action3 30 source3 target3

ModuleAdminExecuteSequence

Aktion Sequenz BaseAction Nach Bedingung
Action2 Action1 1 true
Action3 true

ModuleInstallExecuteSequence

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 für die Standardaktion Action2 leer.
  • Lassen Sie das Feld Sequenz für die Standardaktion Action2 nicht leer.

Merge Module ICE Reference