Friday, 3 August 2012

MSI Validation - Base ICEs


ICE01 tests to make sure the ICE mechanism is functioning. All it does is return the time that it was invoked. ICE01 should never fail. If it does, something is wrong with the Installer Service on the computer where you’re running validation.

ICE03 check the basic items that internal validation should check during editing. It can detect a variety of conditions, including the following: 
  • Duplicate primary keys
  • Nulls in Non-nullable columns
  • Foreign keys that reference nonexistent rows
  • Values outside of acceptable ranges
  • Invalid GUIDs
  • Improperly formatted Condition columns
  • Mistakes in the _Validation table itself

ICE06 performs a sanity check on the .cub file itself. It checks to make sure that the database being validated contains every column that is being checked by any of the ICEs. If this ICE fails, it most likely means that you’re using a new version .cub file with an older version of the Installer database.

ICE32 looks at Foreign Key columns and makes sure that they are the same size and data type as the Primary Key columns that they’re referencing. As long as you’re only using the standard tables in your Installer database this ICE should never fail.

No comments:

Post a Comment