Disabling Self Heal & Repair After Installation
Posted 24 February 2009 - 02:02
When an application installs one or more font files into the standard Windows Font Folder. I will typically manually relocate these font files to another folder (e.g., ...\Font Archive\...) and remove the installed font files from the Windows Font Folder. Prior to using the application my font manager software (MainType by High Logic) will install the requisite font files. However, the installation of these font files does not physically copy the font files to the Windows Font Folder. Instead, it creates the Registry entries with the necessary information about the actual location of the font file (i.e, in the \Font Archive\ folder). When the fonts are no longer needed, the font manager will unload or uninstall them automatically.
This allows me to keep the bare minimum of font files in the Windows Font Folder and also not keep resident a lot of font files which I don’t often need.
The problem occurs when an application uses the Windows [.msi] Installer to install font files in the Windows Font Folder. Even though the Registry knows a font is installed (by the above procedure), Windows Installer detects the requisite font files as missing from the Windows Font Folder, and then tries to self heal and repair the installation. However, there is no need for this as the system has the requisite fonts available, and in so doing has upset my preferred way of managing fonts.
I would like to know if it is possible to implement some modification to prevent Windows Installer from attempting to self heal and repair the installation when it detects font files missing, and how to do this. I am fairly astute and comfortable with making changes to the Registry if needed.
From my limited research I presume it may have something to do with a “key path” programed by the developer of the .msi installation file. However, I cannot find where the “key path” is located or how to access it to make a change.
Any advice to help me achieve my goals would be greatly appreciated.
Posted 24 February 2009 - 03:25
Posted 24 February 2009 - 04:11
|QUOTE (Glytzhkof @ 2009-02-23 18:25)|
|There are several ways to do this, but the most reliable way would be to make a transform for the vendor MSI and disable the keypaths, or better yet disable the whole font install component.|
Would you be kind enough to provide details how to go about doing what you suggest?
Posted 09 March 2009 - 11:23
Also, you can use the property DISABLEADVTSHORTCUTS =1 . Give this property either inside the msi or use it in command line when you are installing the msi.
Posted 09 March 2009 - 12:09
|QUOTE (N Thomas @ 2009-03-09 10:23)|
|Once you have the msi load the MSI in ORCA, go to the component table and delete all of the keypaths from there.|
I think it's fair to say that directly editing a vendor-supplied MSI is regarded universally amongst packagers as A Bad Idea. You should always use a transform.
Now, no offence intended but you haven't actually explained how to delete the keypaths. I'd bet that, reading your instructions, someone unfamilair with packaging would delete the actual components instead. So @ N Thomas, once you have the MSI loaded into Orca, navigate to the 'Components' table and, having located the font component, remove the text in that row's 'KeyPath' column.
Lastly, DISABLEADVTSHORTCUTS - surprisingly - only disables the creation of advertised shortcuts. It has no effect on healing, which is what's happening here.
- Try using http://www.google.com before posting.
- I answer questions only via forums. Please appreciate the time I give here and don't send me personal emails.