Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Nested Wow6432Node key in InstallShield

I have a problem where after my InstallShield project is built and I test the install on a clean 64bit Windows 7 machine, it creates a Wow6432Node key within a Wow6432Node key when I check regedit at HKEY_LOCAL_MACHINE\SOFTWARE. Everything registers correctly and the program seems to run fine. I have made sure that my project is the one that is causing this. I don't want to leave it as it is since it would be silly to have the registry like that. Does anyone know what might have caused this to happen? If you need any more info, please let me know.

like image 531
Aura Avatar asked Oct 09 '22 12:10

Aura


1 Answers

I have seen this issue at my work. If you open your install shield project and look at the components, some will have the COM Extract at Build property set to yes. Expand that component and look at the files. Right click them to view the properties. If the files have Self Register checked it will cause the issue you are seeing. When we went and removed the COM Extract at Build from all our components that had files self registering the issue went away.

When you install your product on a 64 bit machine it will nest the wow6432node key in the registry. On a 32 bit machine it will just add a wow6432node key to the registry which should never exist on a 32 bit machine.

So to clarify the issue stems from the specific components which have both Com Extract at Build property set to yes, AND one of the files contained in that component set to self register. This creates a wow6432node in error. To answer your question of why you are seeing nested wow6432node keys is a little more complex.

What I think is happening in your case is you are creating a redistributable which has the wow6432node issue. When your main installer goes to create the necessary registry keys, it checks if the machine is 64 bit. If it is, it places everything under the wow6432node key. So far everything is working, but then comes along the redistributable which contains the error. It then installs everything to it's own Wow6432node key which is now contained in the main installer. You can try testing this by installing your application to a 32 bit machine. You should then only see 1 wow6432node key, rather than nested keys. That 1 wow6432node key is the one that is created in error from the issue explained above which is contained in your redistributable.

(edited for clarification)

like image 139
UnknownVariable Avatar answered Oct 13 '22 10:10

UnknownVariable