ICE02

ICE02 验证 ComponentFileRegistry 表之间的部分引用是否是相互的。 这些引用必须是相互的,安装程序才能正确确定组件的安装状态。

安装程序使用 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 来修复此错误。

ICE 参考