This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Installing a 64-bit software created is not putting entry in corresponding registry.
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 10, 2017
12:30 AM
Installing a 64-bit software created is not putting entry in corresponding registry.
Hi,
So, I've been using Install shield to create a setup file. It is a 64-bit setup file(FYI : it has some 32 bit exes in it). On installing this setup, its getting properly in the destined location ("C:\\"). But, on checking the registry path, its getting registered in the below path
which is 32 bit software path where it actually should have been registered under 64 bit path
I built 32-bit setup file for the same software and entry is getting registered on the same location(this one is normal behavior off course).
Can someone clear me my following doubt on this
[LIST=1]
Is setting a registry location done within Install shield by default or explicitly?
If explicitly, Should registry location be decided by us during building in install shield or somewhere else?
If we provide somewhere else explicitly, what would happen to the 32-bit registry location created in my case?
Any sort of guidance on this is much appreciated. Thanks in Advance. 🙂
So, I've been using Install shield to create a setup file. It is a 64-bit setup file(FYI : it has some 32 bit exes in it). On installing this setup, its getting properly in the destined location ("C:\
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432NodeMicrosoft\Windows\CurrentVersion\Uninstall\
which is 32 bit software path where it actually should have been registered under 64 bit path
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
I built 32-bit setup file for the same software and entry is getting registered on the same location(this one is normal behavior off course).
Can someone clear me my following doubt on this
[LIST=1]
Any sort of guidance on this is much appreciated. Thanks in Advance. 🙂
(5) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 10, 2017
01:01 PM
The Uninstall key is being created by the 32-bit MSIEXEC.EXE process that is spawned when you run your MSI. So, you won't have any control over that location.
Otherwise, I almost never specify Wow6432Node but instead let MSI decide for me based off of whether the Component is set to 64-bit or not. If the "64-Bit Component" is set to "Yes" it will write to 64-bit registry locations and if the "64-Bit Component" is set to "No" then it will write to 32-bit registry locations.
I hope that helps
Chad
Otherwise, I almost never specify Wow6432Node but instead let MSI decide for me based off of whether the Component is set to 64-bit or not. If the "64-Bit Component" is set to "Yes" it will write to 64-bit registry locations and if the "64-Bit Component" is set to "No" then it will write to 32-bit registry locations.
I hope that helps
Chad
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 10, 2017
01:48 PM
As I thought about what you said a little bit more I realized you'd need a 64-bit installer to do what you want. That should go to the 64-bit Uninstall section.
I tried it and it seemed OK to me. I did have to set my Template Summary to
x64;1033
In the General Information view, Summary Information Stream section, set the Template Summary property to x64;1033. Note: If you live in a country where English is not the language, you will use a different language code from 1033.
That might be all it is. If you already have that set then watch in Task Manager as you run your installer and make sure it doesn't spawn an MSIEXEC.EXE *32, but only MSIEXEC.EXE and it should work correctly in that situation.
Sorry about misunderstanding initially.
Chad
I tried it and it seemed OK to me. I did have to set my Template Summary to
x64;1033
In the General Information view, Summary Information Stream section, set the Template Summary property to x64;1033. Note: If you live in a country where English is not the language, you will use a different language code from 1033.
That might be all it is. If you already have that set then watch in Task Manager as you run your installer and make sure it doesn't spawn an MSIEXEC.EXE *32, but only MSIEXEC.EXE and it should work correctly in that situation.
Sorry about misunderstanding initially.
Chad
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 14, 2017
02:57 AM
chad.petersen wrote:
As I thought about what you said a little bit more I realized you'd need a 64-bit installer to do what you want. That should go to the 64-bit Uninstall section.
I tried it and it seemed OK to me. I did have to set my Template Summary to
x64;1033
In the General Information view, Summary Information Stream section, set the Template Summary property to x64;1033. Note: If you live in a country where English is not the language, you will use a different language code from 1033.
That might be all it is. If you already have that set then watch in Task Manager as you run your installer and make sure it doesn't spawn an MSIEXEC.EXE *32, but only MSIEXEC.EXE and it should work correctly in that situation.
Sorry about misunderstanding initially.
Chad
Hi Chad,
Thanks for the heads up. This information is very useful. 🙂 However, I am in need of a script which automates this work. i.e., change the template summary property using script. Is there any possibility for that. Thanks in advance.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 14, 2017
09:46 AM
No, an installer is either compiled as 32-bit or 64-bit. Once compiled you cannot change the bit type on the fly.
Chad
Chad
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 14, 2017
10:04 AM
If you meant pre-compile time then that could be done, but I'm not sure of the approach you are after since every Component in a 64-bit installer is typically marked as either 32-bit (default) or 64-bit. But, you can save an .ISM as "Project File Format" of "XML" instead of the default "Binary" file format and then use XML tools to write to or alter the .ISM file prior to compiling.
I typically have two .ISM files - one for 32-bit authoring (32-bit MSI for 32-bit or 64-bit systems) and one for 64-bit authoring (64-bit MSI for 64-bit systems).
A 32-bit installer cannot write to 64-bit locations on a 64-bit system.
One of our most complex products I wrote a 32-bit installer that was used n both 32-bit and 64-bit systems. Then if you had a 64-bit system it ran this overlay that placed the 64-bit registry keys and files only. It kept me from having to maintain two huge installers that were basically identical. Instead I maintain one huge installer and one overlay installer that was a lot smaller. It worked out very well.
Chad
I typically have two .ISM files - one for 32-bit authoring (32-bit MSI for 32-bit or 64-bit systems) and one for 64-bit authoring (64-bit MSI for 64-bit systems).
A 32-bit installer cannot write to 64-bit locations on a 64-bit system.
One of our most complex products I wrote a 32-bit installer that was used n both 32-bit and 64-bit systems. Then if you had a 64-bit system it ran this overlay that placed the 64-bit registry keys and files only. It kept me from having to maintain two huge installers that were basically identical. Instead I maintain one huge installer and one overlay installer that was a lot smaller. It worked out very well.
Chad