ICE36
ICE36 validates that every icon in the Icon table is listed at least once in the ARPPRODUCTICON property or the Class, ProgId, or Shortcut tables.
During advertisement, the installer installs all the icons listed in the Icon table on the user's computer. Having unused icons in the Icon table does not prevent the installation from running, however it does unnecessarily increase the size of the .msi file and the time and space required to advertise a feature.
If an icon is not referenced in the property or table and there is no UI provided to create a reference at run time, you should remove the icon to achieve better performance.
Result
ICE36 posts a message if there is a icon in the Icon table that is not referenced in the Class, ProgId, or Shortcut tables and if there is no UI provided to create such a reference at run time.
Example
ICE36 reports the following error for the example shown.
Icon Bloat. Icon Icon4 is not used in the Class, Shortcut, or ProgID table. This adversely affects performance.
Icon Table (partial)
Name | Data |
---|---|
Icon1 | Control1 |
Icon2 | Control2 |
Icon3 | Control3 |
Icon4 | Control4 |
ProgID Table (partial)
ProgID |
---|
Property1 |
Class Table (partial)
CLSID |
---|
{3E469ABA-3644-11d2-8892-00A0C981B015} |
Shortcut Table (partial)
Shortcut | Icon_ |
---|---|
Shortcut1 | Icon2 |
Related topics