4
votes

I am running an installer generated using InnoSetup on 64 bit Windows OS (Windows Server 2012 R2) installation with ArchitecturesInstallIn64BitMode=x64 and ArchitecturesAllowed=x64 but I still see that the process gets launched in 32 bit mode. Am I missing some other basic setting ?

OS Details :

Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Users>wmic OS get OSArchitecture
OSArchitecture
64-bit

C:\Users>echo %PROCESSOR_ARCHITECTURE%
AMD64

C:\Users>systeminfo | findstr /I type:
OS Build Type:             Multiprocessor Free
System Type:               x64-based PC

C:\Users>

Inno Setup : enter image description here

Task Manager : This is what Task Manager shows (I have masked out some names etc) enter image description here

Answer : Based on comments section, Inno Setup always produces a 32 bit installer executable. There is no mechanism to produce a 64 bit installer. I was mis-interpreting the documentation.

2
As long as the installer inserts the files to the right place, what bitness is used by its executable does not matter.Lex Li
If things were that simple and straightforward, there would have been no need to have a notion of a 32-bit vs 64-bit install modeAnand
jrsoftware.org/ishelp/index.php?topic=64bitlimitations But whatever has been documented. If you do hit a more specific issue, say it.Lex Li
Refer to : "Install Mode: 32-bit vs. 64-bit" "64-bit mode is selected if the user is running a 64-bit version of Windows and the system's processor architecture is included in the value of the ArchitecturesInstallIn64BitMode [Setup] section directive. Otherwise, 32-bit mode is used." What's documented is not happening.Anand
Well, it depends on which line you are reading. "Inno Setup is a 32-bit application" explains why it is a 32 bit process you see. And then in "64 bit mode", the setup process disables WOW64 redirection and pretends itself to be a 64 bit process.Lex Li

2 Answers

2
votes

Inno Setup started to support 64 bit installation long before Delphi supports 64 bit executable generation. Therefore, its core executable is 32 bit, and executes as a 32 bit process:

Inno Setup is a 32-bit application

To install files to 64 bit Windows folders while remaining a 32 bit process, it has to disable WOW64 redirection:

Setup temporarily disables WOW64 file system redirection when files/directories are accessed by those sections.

That explains what you observed.

Quotes can be found in the official article:
http://www.jrsoftware.org/ishelp/index.php?topic=64bitlimitations

2
votes

The installer that Inno Setup creates is always 32-bit.

Unfortunately this means that if your application is 64-bit and the environment that someone is installing to only supports 64-bit then it won't work. This can happen, for example, when running under Wine when only 64-bit is supported. This appears to be the case for CentOS's implementation of Wine. Therefore all Inno Setup installations will fail (even for 64-bit programs) because it can't run 32-bit programs. I just became aware of this situation myself thanks to one of my customers.

Update: See the Notes on EPEL section here: CentOS - Notes on EPEL 7