I have a self-registered DLL, and it registers fine, but it's not getting called at all during uninstall. I've attached the uninstall log; the SelfUnregModules action appears to be performed, but no DLL's mentioned. In the install log, the self-registering DLL is mentioned explicitly in the SelfRegModules step.
The Dll's component seems to be shared by other products on the machine. Is this a clean machine? The sharing process is indicated in the log by the attribute "PreviouslyPinned=1". This means Windows Installer will skip the removal for the resources having this attribute.
Can you please test the package on clean machines?
Uninstalling knocks it down to 1. I deleted all other references to the DLL before installing, so it was clean. Any idea as to why it would start at 2? Nothing else in the solution references it as far as I can tell.
I'm not sure why you are encountering this behavior. Can you test your scenario on a clean machine? Maybe you forgot some references to the DLL when you manually clean the others references?
If on a clean machine the problem still persists or you do not have a clean machine, can you please send us a download link of your package application to support at advancedinstaller dot com so we can investigate?
There may well be things left behind that I didn't find that were still referencing the DLL. I'm going to have to admit defeat on this one-- the CA to manually unregister it works, this is the only product that uses the component, and the component must be unregistered at uninstall time, so I'm just going to leave it in there. Thanks for your time in looking at this.