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
- :
- Re: Installing x64 and x86 binaries on Vista (x64)
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
‎Jul 01, 2008
09:48 PM
Installing x64 and x86 binaries on Vista (x64)
Our product includes two parts: a 64-bit program and a 32-bit program.
Conventionally, on Vista (x64), 64-bit application will be installed to \program files\, and 32-bit application will be installed to \program files (x86).
But I really don't want to split our product into two places that way. Can I install both of them into the \program files\ dir? Does Vista decide whether a program should be running on native x64 or WOW64 based on its location or the binaries/manifests?
Thanks!
Conventionally, on Vista (x64), 64-bit application will be installed to \program files\, and 32-bit application will be installed to \program files (x86).
But I really don't want to split our product into two places that way. Can I install both of them into the \program files\ dir? Does Vista decide whether a program should be running on native x64 or WOW64 based on its location or the binaries/manifests?
Thanks!
(2) Replies
‎Jul 02, 2008
10:27 AM
Based on what my understanding, rather than any specific documentation to this effect, 64-bit Windows will run a given executable based on its contents; if it's a 32-bit executable, it will be run as a 32-bit process; if a 64-bit executable, it will be run as a 64-bit process. To help avoid various issues that can arise if a 32-bit process tries to load a 64-bit DLL or (64-bit tries to load a 32-bit DLL), there are some measures in place which try to keep these files separate.
These measures are fairly strong in some parts of the filesystem and registry - specifically the Windows\System32 and Windows\SysWOW64 folders and the Wow6432Nodes in the registry, but they're fairly weak in others. The Program Files and Program Files (x86) folders are weaker, as applications looking up the base folder will get different results, but can still access files in the other location with just the path.
That's all a long winded way of saying that Windows won't stop you from putting 32-bit files in the Program Files folder, or 64-bit ones in Program Files (x86), and they should run correctly, so long as they don't try to load the wrong kind of DLL. In Windows Installer, in order to target a 64-bit folder, the component must be marked 64-bit, the target must be a 64-bit folder, and the installer must be a 64-bit installer, which would result in some cognitive dissonance if you put a 32-bit file in a 64-bit component. In your case, 64-bit files in 64-bit components in 32-bit folders won't cause a problem, but may look incorrect sometime down the road (so make a note somewhere as to why).
These measures are fairly strong in some parts of the filesystem and registry - specifically the Windows\System32 and Windows\SysWOW64 folders and the Wow6432Nodes in the registry, but they're fairly weak in others. The Program Files and Program Files (x86) folders are weaker, as applications looking up the base folder will get different results, but can still access files in the other location with just the path.
That's all a long winded way of saying that Windows won't stop you from putting 32-bit files in the Program Files folder, or 64-bit ones in Program Files (x86), and they should run correctly, so long as they don't try to load the wrong kind of DLL. In Windows Installer, in order to target a 64-bit folder, the component must be marked 64-bit, the target must be a 64-bit folder, and the installer must be a 64-bit installer, which would result in some cognitive dissonance if you put a 32-bit file in a 64-bit component. In your case, 64-bit files in 64-bit components in 32-bit folders won't cause a problem, but may look incorrect sometime down the road (so make a note somewhere as to why).