How Does a Package Self Heal?
Self-healing is the ability of Windows Installer to detect and repair any critical resources that are required for the user to successfully launch and use the application. Every resource of a package is not checked during self-healing. Because self-healing occurs as the application is launched, exhaustive checking of every resource would lead to excessive wait times.
Self-healing, install-on-demand, and user profile fix-up are all variations on the same functionality provided by Windows Installer. Windows Installer is asked to find the appropriate software application when an entry point is activated by a user (usually double-clicking a shortcut or document type). If Windows Installer finds the software is not yet installed, it will immediately install it. If the software is installed, it will be verified by self-healing. In both cases, this happens at the Feature level.
As the above figure illustrates, when an entry point is activated, the Component to which the entry point belongs is checked for which Feature it is attached to. Every component in that Feature is checked for non-existence of the KeyPaths. If any single keypath is missing, the entire feature is reinstalled.
For example, say the Component in the figure was installed on a computer. After a couple of months, someone accidentally deletes the file DV.DLL. The next time the user launched the shortcut Data Viewer.lnk, the files DV.EXE, DV.DLL, and the registry key HKEY_CURRENT_USER\Software\DV\Path would be checked for existence. If any of these three resources were missing, the entire Feature (which is made up of the Components C1, C2, and C3) would be reinstalled. This is why self-healing results in much more installation activity than a single component re-installation.
Self-healing will not repair resources (mainly files and registry keys) if the keypath of the component they belong to is properly installed on the system. For example, if DV.DAT in Figure 3.7 was missing, it would not be self-healed if DV.EXE was present on the system. To compensate for this, users can be taught to use the Repair option in Add/Remove Programs. This option does a full re-install of the application and will fix problems with missing resources that are not fixed by self-healing.
Reference:
MSDN Blogs and key inputs from other pals.
- Login or register to post comments
- 1431 reads
- Printer-friendly version















Hey ! U r doing a great Job !!!!!
Hey ! U r doing a great Job !!!!!
although copyright issues could cause you problems.
I wouldn't let Darwin Sanoy know your swiping there diagrams and content I expect its a breach of there copyright.
you should probably think about drawing your own little pictures in case someone gets upset.
rightly pointed...
Well Buddy, that's rite.
Earlier, when I had given this post, I was in a myth that this forum is purely a discussion forum. Hence, I re-used this diagram and gave in some key inputs of source-resilency here from my experience. Now I purely write only articles, which provides solutions to the existing problems and for better usage of WPS.
As rightly pointed, it's a better idea to re-draw if we feel that this picture can't be changed. If it can be depicted in a better way, it's always advisable. In my case, I felt this image to be more explanatory than my data. I guess, that's where I went wrong.. :-)
Self-healing feature runs after antivirus scheduled scan
We have seen AV kick off the self-healing feature of Office 2002 and reinstall a component that was manually removed. Any ideas on how this happens?
why why why
check the application event log it will have an MSI error code. Within the data of the code will be the product code and component code of the offending component.
track them back to the keypath of the component and you could find the culprit.