We recieved an msi from a vendor that we needed to modify via transform. Typically when we package something from scratch, if we make changes to the current user registry hive, the msi will autoheal itself the first time it is opened when pushed down through sms so it can make those changes to the registry for the current user. But this is not working for this msi, when we directly edit the msi or through a transform. It never autoheals itself so those current user reg settings never get installed for the logged in user. My question is how is this possible? Is there a way to disable the autoheal feature? Thanks.
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

0
Problem with component keypaths perhaps?
Answered 05/13/2009 by: dodgy
Orange Belt

Please log in to comment
0
can you expand on this?
Answered 05/13/2009 by: rich872
Senior Yellow Belt

Please log in to comment
0
If you look at the registry table you should see the corresponding component for that registry entry. Then check the component in the component table and ensure a keypath is set.

If the keypath value is blank this might be the cause of the self-heal failure.

For more information see:

http://en.wikipedia.org/wiki/Windows_Installer#Key_paths
Key paths
A key path is a specific file, registry key, or ODBC data source that the package author specifies as critical for a given component. Because a file is the most common type of key path, the term key file is commonly used. A component can contain at most one key path; if a component has no explicit key path, the component's destination directory is taken to be the key path. When an MSI-based application is launched, Windows Installer checks the existence of these critical files or registry keys (that is, the key paths). If there is a mismatch between the current system state and the value specified in the MSI package (e.g., a key file is missing), then the related feature is re-installed. This process is also known as self-healing or self-repair. No two components should use the same key path.
Answered 05/13/2009 by: dodgy
Orange Belt

Please log in to comment
0
Well first off, do you got any entrypoints in the package (ex. advertised shortcut) to trigger the self-check and later on perform a repair when a component is found broken?

The component location that holds the HKCU registry entries are also vital.
Do understand this a bit more please take the time to read through John's blog regarding Windows Installer Self healing: http://johnmcfadyen.spaces.live.com/blog/cns!9DD01136FC094724!123.entry
Answered 05/13/2009 by: AngelD
Red Belt

Please log in to comment
0
Thanks dodgy and AndgelID. This is really good stuff. Looks like the shortcuts in the MSI are not advertised so there is nothing to trigger the self-check.
Answered 05/14/2009 by: rich872
Senior Yellow Belt

Please log in to comment
Answer this question or Comment on this question for clarity