ICE36

ICE36 验证 Icon 表中的每个图标是否在 ClassProgIdShortcut 表的 ARPPRODUCTICON 中至少列出一次。

在播发期间,安装程序会在用户的计算机上安装 Icon 表中列出的所有图标。 即使 Icon 表中有未使用的图标,仍然会运行安装,但会不必要地增加 .msi 文件的大小以及播发功能所需的时间和空间。

如果某个图标未在属性或表中引用,并且没有提供 UI 用来在运行时创建引用,则应删除该图标来提高性能。

结果

如果 Icon 表中存在 ClassProgIdShortcut 表中未引用的图标,并且没有提供 UI 用来在运行时创建此类引用,那么 ICE36 会发布一条消息。

示例

ICE36 针对所示示例报告以下错误。

Icon Bloat. Icon Icon4 is not used in the Class, Shortcut, or ProgID table. This adversely affects performance.

Icon 表(部分)

名称 数据
Icon1 Control1
Icon2 Control2
Icon3 Control3
Icon4 Control4

 

ProgID 表(部分)

ProgID
Property1

 

Class 表(部分)

CLSID
{3E469ABA-3644-11d2-8892-00A0C981B015}

 

Shortcut 表部分)

快捷键 Icon_
Shortcut1 Icon2

 

ICE 参考