Reputation: 4611
I've marked a component which writes a registry key with Permanent="yes"
attribute. Later I removed this attribute, but component still thinks it is permanent. Uninstall log says:
Disallowing uninstallation of component: {XXXXXXXX-3955-519D-AC73-F6832147D388} since another client exists
Searching Windows Registry for that GUID gives no result. How can I clean up "Windows Installer memory"?
Documentation to Permanent
attribute says
The installer registers an extra system client for the component in the Windows Installer registry settings (which basically just means that at least one product is always referencing this component)
but where this "extra system client" can be found and uninstalled?
Upvotes: 4
Views: 1778
Reputation: 6637
AFAIK This can only be "un-installed" by directly deleting the entry from the registry. You will be able to find the component under HKEY_CLASSES_ROOT\Installer\Components
. The component keyname is the guid re-packed. According to here the packed GUID can be worked out by following these rules:
A packed GUID can be obtained by applying a transform to a standard GUID. This transform performs the following operations:
- removes the curly braces and separating dashes from a standard GUID
- writes the first three groups of hexadecimals characters in a standard GUID in reverse order
- switches every two characters in the fourth and fifth group in a standard GUID
Remember to take a reg backup first just in case and also to move the installed files out of the way before trying to install the non-permanent package.
The other alternative is to give the component a new guid and just leave old one as-is.
Upvotes: 3