ICE27

Windows Installer

ICE27

ICE27 validates the sequence tables of an installation package for valid actions, action sequence restrictions, and organization in Search, Costing, Selection, and Execution sections.

The ICE27 custom action validates the following:

  • That the actions listed in the Action column of the sequence tables are a standard actions, a custom action listed in the CustomAction table, or a dialog box listed in the Dialog table.
  • That actions subject to sequencing restrictions are in the correct relative order to each other in the action sequence. Sequencing restrictions result when one action is dependent on another.
  • That actions restricted to a particular section of the sequence are located where they belong. ICE27 validates the following organization of the sequence tables. Note that not every sequence table has every section. See the suggested sequence tables in Using a Sequence Table.
Sequence table
section
Range in action
sequence
Actions belonging to section
Search {start} to CostInitialize Actions that search for existing applications.

AppSearch

CCPSearch

Costing CostInitialize to CostFinalize action Actions that do file costing.

CostInitialize

FileCost

CostFinalize

Selection CostFinalize to InstallValidate Actions that set folders or feature states.

SetODBCFolders action

Execution InstallValidate to InstallFinalize Script actions, such as Registration, Publication, Installation (where you copy files).

Note the InstallFinalize action must be in the table if and only if there are actions in the Execution section.

PostExecution InstallFinalize to {end} RemoveExistingProducts

 


ICE27 validates the following tables:

Result

ICE27 posts an error message if there are sequence tables in the package with invalid action sequencing or organization.

Example

ICE27 error Description
Unknown action: 'Action1' of InstallExecuteSequnence table. Not a standard action and not found in CustomAction or Dialog tables There is an action listed in the sequence table indicated that is not a standard actions, a custom action listed in the CustomAction table, or a dialog box listed in the Dialog table.
'Action2' in InstallExecute table in wrong place. Current: Search, Correct: Costing There is an action in a sequence table that is incorrectly placed with respect to the sequence number in the Sequence column.

"Current" indicates the current placement of the action in the Search, Costing, Selection, or Execution sections of the indicated sequence table.

"Correct" indicates in which section the action belongs.

To fix this error, change the sequence number of the action to inside the correct section. Note that some action can be located in more than one section.

'InstallFinalize' Action in InstallExecuteSequence table can only be called when script operations exist to be executed There is an InstallFinalize action in a sequence table that does not contain any script operations in the Execution section of the table.

Add actions to the Execution section or remove the InstallFinalize action from the table.

InstallFinalize must be called in InstallExecuteSequence table as script operations exist to be executed There is a sequence table containing actions in the Execution section that does not include the InstallFinalize action.

Add the InstallFinalize action to this sequence table and give it the greatest sequence number to place it last in the action sequence.

Action: 'Action3' in InstallExecuteSequence table must come before the 'Action5' action. Current seq#: 1200. Dependent seq#: 1100 There is an action in the indicated sequence table that is sequenced after a dependent action.

Change the sequence number on the dependent action so that it comes before the action.

Action: 'Action4' in InstallExecuteSequence table must come after the 'Action6' action. There is an action in the indicated sequence table that is sequenced before an action that it is dependent upon.

Change the sequence number on the action so that it comes after its dependent action.

 


See Also

ICE Reference

Send comments about this topic to Microsoft

Build date: 8/13/2009

© 2009 Microsoft Corporation. All rights reserved.