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.
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.
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)
Component | Directory | Attributes | KeyPath |
---|---|---|---|
Component1 | DirectoryA | 0 | FileA |
Component2 | DirectoryA | 4 | RegKeyB |
Component3 | DirectoryA | 0 | FileC |
Component4 | DirectoryA | 4 | RegKeyD |
Registry Table (partial)
Registry | Root | Component_ |
---|---|---|
RegKeyA | 1 | Component1 |
RegKeyB | 1 | Component2 |
RegKeyC | -1 | Component3 |
RegKeyD | -1 | Component4 |
File Table (partial)
File | Component_ |
---|---|
FileA | Component1 |
FileB | Component2 |
FileC | Component3 |
FileD | Component4 |
Directory | Directory_Parent | DefaultDir |
---|---|---|
TARGETDIR | SourceDir | |
DirectoryA | TARGETDIR | DirectoryA |
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).