I have a WiX-based MSI that installs a service and some shortcuts (and many other files that don't).
The shortcut is created as described in WiX docs with the registry key under HKCU as the key file. This is the installation of all users, but in order to pass ICE38, this registry key must be under the current user.
When the service starts (it starts under the SYSTEM account), it notices that this registry key is invalid (at least for this user) and starts the installation again for "recovery".
In the event log, I get MsiInstaller Events 1001 and 1004, showing that "Resource HKEY_CURRENT_USER \ SOFTWARE \ MyInstaller \ Foo" does not exist. "This is not surprising since the SYSTEM user did not have this key.
I turned on the MSI syslog, and auto repair created my log file in the C: \ Windows \ Temp folder, and not in the specific TEMP user folder, which apparently implies that the current user was SYSTEM (plus the log file shows "Calling process "will be my service).
Is there something I can do to disable the auto repair feature? Am I doing something wrong or violating the MSI rule? Any tips on where to look next?
source
share