ICE57

ICE57 验证各个组件是否不混合每台计算机和每用户数据。 此 ICE 自定义作检查注册表项、文件、目录密钥路径和未播发的快捷方式。

将每用户和每台计算机数据混合在同一组件中可能会导致在多用户环境中为某些用户部分安装组件。

请参阅 ALLUSERS属性

结果

如果 ICE57 发现包含每台计算机和每用户注册表项、文件、目录密钥路径或未播发快捷方式的任何组件,则会发布错误。

ICE57 报告所示示例的以下错误。

Component 'Component1' has both per-user and per-machine 
    data with a per-machine KeyPath. 
 
WARNING: Component 'Component2' has both per-user and 
    per-machine data with an HKCU Registry KeyPath. 
 
Component 'Component3' has a registry entry that 
    can be either per-user or per-machine and a per-machine KeyPath. 
 
Component 'Component4' has both per-user data and 
    a keypath that can be either per-user or per-machine.

组件表(部分)

元件 目录 属性 KeyPath
Component1 DirectoryA 0 FileA
Component2 DirectoryA 4 RegKeyB
Component3 DirectoryA 0 FileC
Component4 DirectoryA 4 RegKeyD

 

注册表表(部分)

注册表 元件_
RegKeyA 1 Component1
RegKeyB 1 Component2
RegKeyC -1 Component3
RegKeyD -1 Component4

 

文件表(部分)

文件 元件_
FileA Component1
FileB Component2
FileC Component3
提交 Component4

 

Directory 表

目录 Directory_Parent DefaultDir
TARGETDIR SourceDir
DirectoryA TARGETDIR DirectoryA

 

若要修复错误,请重新组织应用程序,使每个组件仅包含每用户或每台计算机资源,而不是同时包含这两者。

发布第一条错误消息是因为 Component1 包含 FileA(每台计算机)和 HKCU 注册表项 RegKeyA(每个用户)。

ICE 参考