Targeting 32-Bit and 64-Bit Windows-Based Systems

InstallAnywhere 2018

Microsoft designed 64-bit versions of Windows to allow existing 32-bit applications to work seamlessly on 64-bit versions of Windows. They also designed 64-bit versions of Windows in such a way to allow a recompiled version of the same code to work seamlessly as a 64-bit application.

In some cases, such as installation, what is normally a beneficial separation becomes a challenge. Typically installers are 32-bit applications themselves (in order to run on 32-bit machines), and accessing 64-bit locations to install a 64-bit application is more complex than a standard file copy or registry write. InstallAnywhere has support that lets you create installers that target both 32-bit and 64-bit versions of Windows.

Challenges of Supporting Both 32-Bit and 64-Bit Windows-Based Systems

32-Bit vs. 64-Bit File Locations

To provide support for allowing existing 32-bit applications to work on 64-bit versions of Windows, most 64-bit versions of Windows use 32-bit Windows-on-Windows (WOW64) emulation. This WOW64 emulation support isolates the 32-bit and 64-bit files from each other by storing their files in separate locations.

A 64-bit target system typically has two Program Files folders:

Program Files, which is for 64-bit applications
Program Files (x86), which is for 32-bit applications

A 64-bit target system typically has two Common Files folders (one in either Program Files folder):

Program Files\Common Files, which is for 64-bit applications
Program Files (x86)\Common Files, which is for 32-bit applications

A 64-bit target system also typically has two system folders:

System32, which is for 64-bit libraries and executable files
SysWOW64, which is for 32-bit libraries and executable files

Thus, if an end user runs a 32-bit installer on a 64-bit version of Windows that uses WOW64 emulation, files that you may want to be installed to 64-bit file locations may be redirected to 32-bit file locations (such as Program Files x86). However, on 32-bit systems, such files are installed to Program Files.

32-Bit vs. 64-Bit Registry Locations

The isolation of 32-bit and 64-bit data from each other on 64-bit systems also occurs in the registry. A 64-bit target system typically has two HKEY_LOCAL_MACHINE\Software keys:

HKLM\Software, which is for 64-bit applications
HKLM\Software\Wow6432Node, which is for 32-bit applications

Thus, if an end user runs a 32-bit installer on a 64-bit version of Windows that uses WOW64 emulation, registry data that you may want to be installed to 64-bit HKLM\Software locations may be redirected to HKLM\Software\Wow6432Node. On 32-bit systems, such registry data are installed to HKLM\Software.

Tip • To see how a 32-bit application views the registry on a 64-bit version of Windows, launch the 32-bit version of the Registry Editor (the regedit.exe file in the SysWOW64 folder).

Pure 64-Bit Target Systems

Some 64-bit versions of Windows—such as Windows Server Core systems—may not have WOW64 support. These 64-bit systems cannot run 32-bit installers.

32-Bit Installer Support in InstallAnywhere for 32-Bit and Most 64-Bit Windows-Based Target Systems

In some scenarios, if you are creating 32-bit installers for 32-bit and 64-bit versions of Windows, you may want WOW64 emulation to be enabled for your 32-bit installers. In other scenarios, you may want WOW64 emulation to be disabled for your 32-bit installers.

To learn more, see Enabling or Disabling WOW64 Emulation on 64-Bit Windows-Based Target Systems.

Pure 64-Bit Installer Support in InstallAnywhere for 64-Bit Windows-Based Target Systems

In some other scenarios, you may want to create pure 64-bit installers that run on 64-bit versions of Windows that may or may not have WOW64 support.

For more information, see Creating Pure 64-Bit Installers for 64-Bit Windows-Based Target Systems.