database, you will need to use a special validation tool to merge a .cub file(sometimes called ice cubes) containing the Internal Consistency Evaluators(ICEs) into your database, execute the ICEs, and report the results. You canuse â€œMSI Validation Toolâ€ that comes with MS Platform
SDK or use thirdparty utilities like â€œWise Package Validation Wizardâ€ .
Authors of installation packages can also write ICE custom actions or use thestandard set of ICEs included in the .cub files provided with the SDK. A .CUBfile is a special type of database that can also be opened by an MSI editingtool like ORCA (Orca comes with MS Platform SDK).
What does ICE01 check?ICE01 validates that the ICE mechanism is working. It does not testanything. This ICE uses the Time property to get the time and returns eitherthe system time or None.When does ICE01 show up?Unless there is a problem with the ICE mechanism, ICE01 should neverreturn an error.Where can I get more information?Microsoft Platform SDK - ICE01
What does ICE02 check?ICE02 validates that certain references between the Component, File, andRegistry tables are reciprocal. These references must to be reciprocal for theinstaller to correctly determine the installation state of components.Key path value used for a component in the Component table must be theprimary key of a record in the Registry or File tables depending on the type of key path. In addition, the value used under Component_ column of File orRegistry tables must be the primary key of the corresponding record in theComponent table. Hence, the references must be reciprocal.When does ICE02 show up?ICE02 posts an error message if it finds a reference that is not reciprocal.How can I fix ICE02?You will need to modify the record so that the reference can be reciprocal.Where can I get more information?Microsoft Platform SDK - ICE02
What does ICE03 check?ICE03 checks the data types and foreign keys based on the _Validation tableand the database tables in the .msi file. The _Validation table is a systemtable that contains the column names and the data types for all of the tablesin the database. It is used during the database validation process to ensurethat all columns are accounted for and have the correct values.When does ICE03 show up?ICE03 typically posts an error if a data value is not permitted based on the