ICE43

ICE43 验证不引用功能作为其目标的快捷方式(非播发快捷方式)是否位于将 HKCU 注册表项作为其键路径的组件中。

结果

如果非播发快捷方式位于没有将 HKCU 注册表项作为其键路径的组件中,ICE43 会发布错误消息。

示例

ICE43 将为所示示例报告以下错误。

ICE43 错误 说明
组件 Component1 具有非播发快捷方式。 它必须使用 HKCU 下的注册表项(而不是文件)作为其 KeyPath。 Component1 的属性列为 0,这意味着该组件使用文件作为其 KeyPath。 这会导致仅为计算机上的第一个用户安装此组件中的非播发快捷方式。 稍后安装此组件的用户看不到快捷方式,因为该组件被安装程序视为在计算机上已存在。 要修复此错误,请设置属性的 RegistryKeyPath 位以将组件切换为注册表项,然后将 KeyPath 值更改为注册表表中的有效条目。
组件 Component2 具有非播发快捷方式。 它必须使用 HKCU 下的注册表项作为其 KeyPath。 KeyPath 当前为 null。 Attributes 列设置为使用注册表,但 KeyPath 为 null。 KeyPath 必须引用注册表表中的条目。 要修复此错误,请将 KeyPath 值更改为注册表表中的有效条目。
组件 Component3 具有非播发快捷方式。 其 KeyPath 注册表项必须位于 HKCU 下。 Attributes 列设置为使用注册表,但引用的注册表项不在 HKCU 下。 要修复此错误,请切换为将其他注册表项作为此组件的 KeyPath,或者将注册表项的根值更改为 -1 或 1。
组件 Component4 的 KeyPath 注册表项不存在。 组件的 KeyPath 列中引用的注册表项不在注册表表中。 要修复此错误,请创建一个条目。
注册表项 Reg5 设置为组件 Component5 的 KeyPath,但该注册表项不属于 Component5。 在位于 HKCU 树下的组件的 KeyPath 列中引用了一个注册表项,但该注册表项的“Component_”列并不引用其列出的作为 KeyPath 的同一组件。 这意味着,仅当安装了其他组件时,才会创建用作组件的 KeyPath 的注册表项。 要修复此错误,请更改 KeyPath 值以引用属于该组件的注册表项,或者更改注册表项,使其属于将其用作 KeyPath 的组件。

 

组件表(部分)

组件 特性 KeyPath
Component1 0 文件 1
Component2 4  
Component3 4 Reg3
Component4 4 Reg4
Component5 4 Reg5

 

注册表表(部分)

注册表 Root Component_
Reg3 2 Component3
Reg5 0 Component4

 

ICE 参考