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.

Component 表(部分)

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

 

Registry 表(部分)

注册表 Root Component_
RegKeyA 1 Component1
RegKeyB 1 Component2
RegKeyC -1 Component3
RegKeyD -1 Component4

 

File 表(部分)

文件 Component_
FileA Component1
FileB Component2
FileC Component3
FileD Component4

 

Directory 表

目录 Directory_Parent DefaultDir
TARGETDIR SourceDir
DirectoryA TARGETDIR DirectoryA

 

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

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

ICE 参考