1. The user installs a software product (via MSI v1)
2. The user upgraded to Windows Installer v2
3. The user installs a newer version of the same software product (via MSI v2)
4. The user receives pop-up Event Log notifications each time they launch the software product.
The Problem:
The Windows event log shows 'Event ID 1001' with a Description as follows:
Code Sample |
'Detection of product '{2B776347-CA92-4828-942D-D9F7D0FC9681}, feature 'MyFeature' failed during request for component '{39BE49C8-C599-41a1-9481-009A76B5518F}'. |
The Research (so far):
After researching this further, I discovered there is a component installed with no associated product installed! The association to the old product GUID exists indicating that the product was uninstalled.
Code Sample |
Component={39BE49C8-C599-41a1-9481-009A76B5518F} (Path=C:\Program Files\Common Files\TestApp\Shared.dll) The component is installed locally. Product[0]={2B776347-CA92-4828-942D-D9F7D0FC9681} The product is unadvertised or uninstalled. |
There are two components that are now installed:
1. Component A is from the old MSI.
2. Component B is from the new MSI (new GUID).
3. Both Components reference the same file that is installed to the same location.
4. Component A was not installed as permanent and used an install attribute of '8' in the Components
Table. (strange the component remains installed after the product was uninstalled successfully.)
The Delimma:
I need to figure out how to remove the Component A entry in the Installed Products database without affecting the installed file that is references by Component B.
The Question:
Does anyone know any unpublished APIs I can use or registry keys I can remove to accomplish this?