MSI Installer start auto-repair when service starts
Posted
by Josh Clark
on Stack Overflow
See other posts from Stack Overflow
or by Josh Clark
Published on 2010-04-07T22:43:53Z
Indexed on
2010/04/07
22:53 UTC
Read the original article
Hit count: 307
I have a WiX based MSI that installs a service and some shortcuts (and lots of other files that don't).
The shortcut is created as described in the WiX docs with a registry key under HKCU as the key file. This is an all users install, but to get past ICE38, this registry key has to be under the current user.
When the service starts (it runs under the SYSTEM account) it notices that that registry key isn't valid (at least of that user) and runs the install again to "repair".
In the Event Log I get MsiInstaller Events 1001 and 1004 showing that "The resource 'HKEY_CURRENT_USER\SOFTWARE\MyInstaller\Foo' does not exist." This isn't surprising since the SYSTEM user wouldn't have this key.
I turned on system wide MSI logging and the auto-repair created its log file in the C:\Windows\Temp folder rather than a specific user's TEMP folder which seems to imply the current user was SYSTEM (plus the log file shows the "Calling process" to be my service).
Is there something I can do to disable the auto-repair functionality? Am I doing something wrong or breaking some MSI rule? Any hints on where to look next?
© Stack Overflow or respective owner