ICE38
ICE38 验证当前用户配置文件下正在安装的每个组件也指定 组件表KeyPath 列中的 HKEY_CURRENT_USER 根目录下的注册表项。
结果
如果安装在用户配置文件下的组件未指定 HKCU 注册表项,ICE38 将发布错误。
例
ICE38 报告所示示例的以下错误。
ICE38 错误 | 描述 |
---|---|
组件 Component1 安装到用户配置文件。 它必须使用 HKCU 下的注册表项作为其 KeyPath,而不是文件。 | Component1 的属性列的值为 0,这意味着该组件必须使用文件作为其 KeyPath。 当多个用户在同一计算机上安装组件时,这会导致困难。 若要修复 Component1 上的此错误,请将 组件表的属性列中的 RegistryKeyPath 位,并将 KeyPath 列中的项更改为 注册表表的注册表列中中列出的值。 |
组件 Component2 安装到用户配置文件。 它必须使用 HKCU 下的注册表项作为其 KeyPath。 KeyPath 当前为 NULL。 | Component2 在 组件表的属性列中设置了 RegistryKeyPath 位。 因此,KeyPath 字段必须包含 注册表表 的注册表列的键,但 KeyPath 列为 Null。 若要修复此错误,请将 KeyPath 值更改为注册表表中的有效条目。 |
组件 Component3 安装到用户配置文件。 它是 KeyPath 注册表项必须属于 HKCU。 | Component3 在 组件表的属性列中设置了 RegistryKeyPath 位,但在注册表表的根列中指定的注册表项的根目录指定 HKEY_LOCAL_MACHINE 而不是 HKEY_CURRENT_USER。 若要修复此错误,请使用 HKEY_LOCAL_MACHINE 下的有效注册表项作为此组件的 KeyPath,或者将 注册表表的根列中的值更改为 -1 或 1。 |
组件 Component4 的 KeyPath 注册表项不存在。 | Component4 在 组件表的属性列中设置了 RegistryKeyPath 位,但 注册表表中不存在 KeyPath 列中的项。 若要修复此错误,请将 Reg4 的条目添加到注册表表中,该条目位于 HKEY_CURRENT_USER下。 |
注册表项 Reg5 设置为 Component5 的 KeyPath,但该注册表项不属于 Component5。 | 在组件的 KeyPath 列中引用的注册表项位于 HKCU 树下,但注册表项的Component_列不会引用其列为 KeyPath 的同一组件。 这意味着,仅当安装了其他组件时,才会创建用作组件的 KeyPath 的注册表项。 若要修复此错误,请更改 KeyPath 值以引用属于组件的注册表项,或更改注册表项以将其用作 KeyPath 的组件。 |
目录表(部分)
目录 | Directory_Parent | DefaultDir |
---|---|---|
Dir1 | StartMenuFolder | |
Dir2 | DesktopFolder | |
Dir3 | Dir3 | AppData |
Dir4 | Dir3 | SubDir |
组件表(部分)
元件 | 目录_ | 属性 | KeyPath |
---|---|---|---|
Component1 | Dir1 | 0 | File1 |
Component2 | Dir2 | 4 | |
Component3 | Dir3 | 4 | Reg3 |
Component4 | Dir4 | 4 | Reg4 |
Component5 | Dir5 | 4 | Reg5 |
注册表表(部分)
注册表 | 根 | 价值 | 元件_ |
---|---|---|---|
Reg3 | 2 | Component3 | |
Reg5 | 0 | Component4 |
相关主题