Export (0) Print
Expand All

ICE57

ICE57 validates that individual components do not mix per-machine and per-user data. This ICE custom action checks registry entries, files, directory key paths, and non-advertised shortcuts.

Mixing per-user and per-machine data in the same component could result in only partial installation of the component for some users in a multi-user environment.

See the ALLUSERS property.

Result

ICE57 posts an error if it finds any component that contains both a per-machine and per-user registry entries, files, directory key paths, or non-advertised shortcuts.

Example

ICE57reports the following errors for the example shown.

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 Table (partial)

ComponentDirectoryAttributesKeyPath
Component1DirectoryA0FileA
Component2DirectoryA4RegKeyB
Component3DirectoryA0FileC
Component4DirectoryA4RegKeyD

 

Registry Table (partial)

RegistryRootComponent_
RegKeyA1Component1
RegKeyB1Component2
RegKeyC-1Component3
RegKeyD-1Component4

 

File Table (partial)

FileComponent_
FileAComponent1
FileBComponent2
FileCComponent3
FileDComponent4

 

Directory Table

DirectoryDirectory_ParentDefaultDir
TARGETDIRSourceDir
DirectoryATARGETDIRDirectoryA

 

To fix the errors, reorganize the application such that each component contains only per-user or per-machine resources, and not both.

The first error message is posted because Component1 contains FileA (per-machine) and the HKCU registry key RegKeyA (per user).

Related topics

ICE Reference

 

 

Community Additions

ADD
Show:
© 2014 Microsoft