ICE92
ICE92 验证没有组件 ID GUID 的组件是否也未指定为永久组件。 此 ICE 自定义操作检查 Component 表中是否存在 ComponentId 字段中指定的没有 GUID 的组件,并验证是否未在 Attributes 字段中设置 msidbComponentAttributesPermanent 标志。 ICE92 还验证没有组件同时具有 msidbComponentAttributesPermanent 和 msidbComponentAttributesUninstallOnSupersedence 属性。
如果 ComponentId 列为 null,则安装程序不会注册组件,并且安装程序无法删除或修复该组件。
ICE92 发出以下错误。
ICE92 错误 | 说明 |
---|---|
组件“[1]”没有 ComponentId,并且标记为永久。 | Component 表中此组件的条目在 ComponentId 列中为 null,在 Attributes 列中具有 msidbComponentAttributesPermanent。 |
ICE92 发出以下警告。
ICE92 警告 | 说明 |
---|---|
组件“[1]”标记为永久和 uninstall-on-supersedence。 将忽略 uninstall-on-supersedence 属性,因为该组件是永久的。 | Component 表中此组件的条目指定了 msidbComponentAttributesPermanent 和 msidbComponentAttributesUninstallOnSupersedence 属性。 |
对于该示例,ICE92 会报告以下错误:
The Component 'Component1' has no ComponentId and is marked as permanent.
Component 表(部分)
组件 | ComponentId | Directory_ | 特性 | KeyPath |
---|---|---|---|---|
Component1 | DirectoryA | 16 | FileA |