ICE02
ICE02 验证 Component、File 和 Registry 表之间的部分引用是否是相互的。 这些引用必须是相互的,安装程序才能正确确定组件的安装状态。
安装程序使用 Component 表的 KeyPath 列来检测 Component 列中列出的组件是否存在。 KeyPath 列包含 Registry 表或 File 表中的键。 这两个表都有 Component_ 列,其中包含指向控制注册表项或文件的组件的 Component 表中的键。 这些引用必须是相互的。
结果
如果 ICE02 发现应该是相互的引用不是相互的,则会发布错误消息。
示例
ICE02 将针对包含所示数据库条目的 .msi 文件发布以下错误消息。
File: 'Red_File' cannot be the key file for Component: 'Blue'. The file belongs to Component: 'Red'
Component 表(部分)
组件 | KeyPath |
---|---|
Red | Red_File |
蓝色 | Red_File |
File 表(部分)
File 列 | Component_ |
---|---|
Red_File | Red |
Blue_File | 蓝色 |
Component Blue 引用 Red_File,但 Red_File 不受 Component Blue 控制,因此不能为 KeyPath 文件。 如果调用安装程序以获取 Blue 的安装状态,则会错误地检查是否安装了 Red_File。 可通过将 Component 表中 Blue 的 KeyPath 字段更改为 Blue_File 来修复此错误。
相关主题