Question

My InstallShield installer doesn't appear to register several of its COM DLLs correctly, even though I have refreshed the COM information for them in the installer. If I manually run regsvr32 after installation, everything is fine.

I notice that after installation, I have InprocServer32 values in the registry for my components containing random-looking strings, which I believe are Darwin descriptors, which I understand will override the cleartext path location if present. When I manually run regsvr32 these Darwin descriptors disappear. My current hypothesis is that the information encoded in these descriptors is incorrect, and so when my program tries to instantiate the COM components, it uses the incorrect Darwin descriptor information and fails, even though the cleartext path to the DLLs is correct.

Can anyone shed any light on how I can see if this is the case, decode these descriptors, stop InstallShield from generating Darwin Descriptors, or otherwise fix my installer?

Was it helpful?

Solution

I understand the darwin descriptors to be the windows installer service tracking the COM entry points back to the original .MSI (so it can heal the .dll if it is deleted etc). The MSI holds the actual value.

Presumably since you've rebuilt the COM info, have you uninstalled the MSI from your machine and re-installed (so msiexec is not just doing a maintenance install rather thana full install).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top