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