ICE77

ICE77 verifies that custom actions with the msidbCustomActionTypeInScript bit set are sequenced after the InstallInitialize action and before the InstallFinalize action. ICE77 checks the sequence in the InstallExecuteSequence table and AdminExecuteSequence table.

Result

ICE77 posts an error if an in-script custom action is sequenced before the InstallInitialize action or after the InstallFinalize action.

ICE77 posts an error if the InstallInitialize action or the InstallFinalize action is missing.

Example

ICE77 reports the following errors for the example:

InstallFinalize is missing from 'InstallExecuteSequence'. 
CA_InScriptInstall is a in-script custom action. It must be sequenced 
before the InstallFinalize action.
 
CA_InScriptAdmin is a in-script custom action.  It must be sequenced 
in between the InstallInitialize action and the InstallFinalize action 
in the AdminExecuteSequence Sequence table.

CustomAction Table (partial)

Action Type
CA_InScriptInstall 1025
CA_InScriptAdmin 1026

 

InstallExecuteSequence Table (partial)

Action Sequence
CA_InScriptInstall 2000
InstallInitialize 1500

 

AdminExecuteSequence Table (partial)

Action Sequence
CA_InScriptAdmin 1400
InstallInitialize 1500
InstallFinalize 6600

 

To fix the errors, sequence the in-script custom actions after the InstallInitialize action and before the InstallFinalize action. The InstallInitialize and InstallFinalize actions must be present in the InstallExecuteSequence table and the AdminExecuteSequence table.

ICE Reference