我正在使用ArchitecturesInstallIn64BitMode=x64
和ArchitecturesAllowed=x64
在64位Windows OS(Windows Server 2012 R2)安装上运行使用InnoSetup生成的安装程序,但是我仍然看到该进程以32位模式启动。我是否还缺少其他一些基本设置?
操作系统详细信息:
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始终会生成32位安装程序可执行文件。没有产生64位安装程序的机制。我在误解文档。
答案 0 :(得分:1)
在Delphi支持64位可执行文件生成之前,Inno Setup开始支持64位安装。因此,其核心可执行文件是32位,并作为32位进程执行:
Inno Setup是32位应用程序
要在保持32位进程的同时将文件安装到64位Windows文件夹中,必须禁用WOW64重定向:
当这些部分访问文件/目录时,安装程序会暂时禁用WOW64文件系统重定向。
这说明了您观察到的情况。
行情可以在官方文章中找到:
http://www.jrsoftware.org/ishelp/index.php?topic=64bitlimitations
答案 1 :(得分:1)
Inno Setup创建的安装程序始终为32位。
不幸的是,这意味着如果您的应用程序是64位的,并且某人正在安装的环境仅支持64位,那么它将无法正常工作。例如,在仅支持64位的Wine下运行时,可能会发生这种情况。 CentOS的Wine实施似乎是这种情况。因此,所有Inno Setup安装都将失败(即使对于64位程序也是如此),因为它无法运行32位程序。多亏了我的一位客户,我才意识到这一情况。
更新:请参见此处的“关于EPEL的说明”部分:CentOS - Notes on EPEL 7