Windows Installer
 
Unrestricted access to Windows Installer functionality!
 
Open Source
 
Open source!
 

<xml/>

 
Plain XML based source scripts!
 
Free
 
Free, no strings attached!
 
Build Automation
 
Command-line interface for automated application build process!
 
Community
 
Thriving community support!
Why WiX?
ICE28

What does ICE28 check?

ICE28 is commonly used to validate that the ForceReboot action (if used) is placed before or after, and never within, a specific group of actions in the action sequence tables (i.e., AdminUISequence, AdminExecuteSequence, InstallUISequence, InstallExecuteSequence). 

When does ICE28 show up?

ICE28 posts an error message if ForceReboot is sequenced within the specified action group.

How can I fix ICE28?

The ForceReboot action must come between InstallInitialize and InstallFinalize in the action sequence of the InstallExecuteSequence table.
The following actions commonly occur together as a group in the action sequence. It is recommended that the ForceReboot action be scheduled to come after this group. If the ForceReboot action is scheduled before the RegisterProduct action, the installer again requires the source of the installation package after the restart. Therefore, the preferred sequence for ForceReboot is immediately following this action sequence.
RegisterProduct
RegisterUser
PublishProduct
PublishFeatures
CreateShortcuts
RegisterMIMEInfo
RegisterExtensionInfo
RegisterClassInfo
RegisterProgIdInfo