Hello,

We are using InstallShield 2016 R2 Professional.
We switched from Windows XP to Windows Server 2012, and now registration of third-party DLL fails to do its job, though no error code is generated.
I have been trying many different things for hours at this point, and nothing worked.

Original code (simplified):

if (LaunchAppAndWait ("C:\WINDOWS\system32\regsvr32.exe", "/s "valid abs path to DLL\some_name.dll"", LAAW_OPTION_WAIT|LAAW_OPTION_HIDDEN) < 0) then
MessageBox("Try running directly from the command line.", WARNING);
endif;

based on recommendations online, the code is now changed to this (to no avail):

LAAW_SHELLEXECUTEVERB = "runas";
if (LaunchApplication("C:\WINDOWS\system32\regsvr32.exe", "/s "valid abs path to DLL\some_name.dll"", "", SW_NORMAL, INFINITE /*WAIT*/,
LAAW_OPTION_USE_SHELLEXECUTE | LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN) < 0)
then
MessageBox("Try running directly from the command line.", WARNING);
endif;

IInstallShield setup.exe is set up to run as "highest level possible". I tried changing it to 'admin', but it didn't accomplish anything. User who runs installer is part of an admin group on the system, so these two options should be the same.


Can someone please help me understand how to register a third-party DLL via InstallShield installer?