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?
ICE31

What does ICE31 check?

ICE31 checks if the font styles used in controls on dialogs are defined in MSI. It also validates that the DefaultUIFont property refers to a valid font style. The DefaultUIFont property sets the default font style used for controls.

Controls can have a predefined font style. To set the font and font style of a text string, you need to prefix the string of displayed characters with {\style} or {&style}. Where style is an identifier listed in the TextStyle column of the TextStyle table. If neither of these are present, but the DefaultUIFont property is defined as a valid text style, that font will be used.

ICE31 checks the Text column for each control in the Control Table to verifies that a valid entry exist in the TextStyle table.

When does ICE31 show up?

ICE31 posts an error message for undefined styles, style names that are too long, a missing TextStyle table, and style tags with no closing brace.

ICE31 posts a warning if the style tag is not at the beginning of the line, or if a control has multiple style tags

How can I fix ICE31?

If the error is because of an undefined style, a style record has to be entered in TextStyle table.

If the error is due to a long style name, you will need to shorten the name so that it can contain less than 72 characters. A style that is over 72 chars and therefore cannot possibly be a style even if somehow you did manage to get it in the TextStyle table.

If the error is because of the missing TextStyle table, it has to be added to the MSI and then style records have to be added to the table.

If the error is due to a style tag with no closing brace, a closing brace has to be added to the Text column of the control record in Control table.

If ICE31 posts a warning because of a style tag not at the beginning of the line, the tag has to be replaced to the beginning of the line under the Text column of the control record in Control table.

If ICE31 posts a warning due to multiple style tags, only one of the tags have to be left by removing the others from the Text column of the control record in Control table.