0
votes

It would be nice if InstallShield provided a 64bit version of their automation interface, but until then.... try this. Add a surrogate registry key for the InstallShield automation object by adding these keys. This CLSID is for IswiAuto23. If you have a different version of the InstallShield automation object installed, then search the registry for the matching InstallShield clsid and update registry accordingly.

[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{3C44313C-4B47-4C59-BA06-1398FABFCDAD}]

"AppID"="{3C44313C-4B47-4C59-BA06-1398FABFCDAD}"

[HKEY_CLASSES_ROOT\WOW6432Node\AppID\{3C44313C-4B47-4C59-BA06-1398FABFCDAD}]

"DllSurrogate"=""
2
Hi Mike, welcome to stackoverflow. If you add your own answer, you need to make it separate from the question you are "asking". So add an answer below. I am not 100% sure what the above achieves though. Please elaborate the problem scenario and tell us how this helps? - Stein Åsmul

2 Answers

0
votes

The build systems I use allow me to specify the version and bitness of msbuild to use. I see no strategic advantage of running the installshield compiler or automation interface as a 64bit process. 2GB of memory is plenty, no?

0
votes

In my case I had to access an InstallShield project using Ruby64bit(win32ole). I was unable to create the IswiAuto23 object, until I added this surrogate. This allowed the creation of a separate 32bit process that can create the InstallShield object and also be accessed from the 64bit calling application(process). For a detailed explanation see here https://blog.mattmags.com/2007/06/30/accessing-32-bit-dlls-from-64-bit-code/

If anyone has another/better idea for using the InstallShield object from Ruby64, please let me know.