When a 32-bit setup package writes or reads a value on a 64-bit machine, the setup package writes or reads from their redirected locations. Their 32-bit counterparts are resolved to redirected locations as follows:
- ProgramFilesFolder - C:\Program Files (x86)\
- CommonFilesFolder - C:\Program Files (x86)\Common Files\
- SystemFolder - C:\Windows\SysWOW64\
- HKLM\SOFTWARE - HKLM\SOFTWARE\Wow6432Node
This is the default behavior of Windows Installer. A 32-bit installation package, on 64-bit machines, cannot install resources into 64-bit locations (i.e. "Program Files" folder).
If you need to install your application in the same path (e.g. C:\Program Files\Your Company\Your Application\) regardless the OS architecture, then you can to create your package type as a mixed package type. For this, you can select the Mixed 32/64-bit matching the platform option for the "Package Type" in the Install Parameters page.
This package runs as a 32-bit package on 32-bit systems and as a 64-bit package on x64 systems. It allows you to have a single installation package that will install on both platform types (32-bit and 64-bit platforms) and can install files or registry in the real system paths regardless of the platform.
When the "Mixed 32/64-bit matching the platform" package type is selected in the Install Parameters page, the wizard will be launched to guide you step by step through every stage required to organize your mixed package.
The package type will be automatically turned into an .EXE setup package. This is happening because the .MSI does not support the mixed package type.
The EXE file built by Advanced Installer is a 32 bit one, this contains the x86 and x64 MSI files as well as the files to be installed from the CAB. When launched, the EXE checks the OS architecture and it launches the correct MSI.