COM Server libraries not registered by Installshield 2015/2018 Express

388 Views Asked by At

An installer project I have for my Delphi application used to work properly, in that it copied and registered the COM server DLL's correctly on the destination machine. This was built using Installshield 2015 Express.

Recent updates to Windows 10 for either the machine the installer is run on, or possibly the machine that I create the installer on, seems to have broken the COM Registration process.

Now when I build, it gives me a slew of these warning messages:

ISEXP : warning -4354: The build was unable to extract COM information from the file C:\InstallShield 2018 Projects\Current\Server Libraries\COMServer.dll in component COMServer.dll. Please ensure that the file is self-registering and verify that the self-registration process does not fail.

After running the installer, by checking the registry, I can see that the COM server DLL's have not been registered as their CLSID information is missing. If I open an elevated command prompt and register the DLL's using regsvr32, they are then fine.

I've tried the "fixes" suggested, such as changing the compatibility of the IsCmdBld.exe, running IS as Administrator, turning on UAC (I never have it off).

One comment I saw said that we need to run a custom action after installation to run regsvr32, but I thought that was the whole point of the COM Registration step in the installer.

I also upgraded the project to Installshield 2018 R2 Express but have exactly the same problem.

Even as a licensed registered user, Flexera don't seem to be able to offer me any support, just pointing me to the community forums. I would prefer the SO community in that case.

1

There are 1 best solutions below

0
SiBrit On

It turns out that it is the version of Windows that InstallShield is installed on that causes the issue. Even the latest InstallShield 2019 Professional has the same problem with COM libraries.

On my Windows 10 version 1903, I get the errors as reported, but on a Windows 7 or Windows 10 version 1607 machine, no errors occur. It works with InstallShield 2015, 2018 and 2019, both Express and Professional editions.

Obviously, Flexera need to get their act together with regard to assuming old versions of their programs (such as the IsCmdBld.exe) will work OK within the far more stringent security requirements of later versions of Windows 10.