即使指定了ArchitecturesInstallIn64BitMode

时间:2019-01-23 20:30:10

标签: inno-setup

我正在使用ArchitecturesInstallIn64BitMode=x64ArchitecturesAllowed=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设置: enter image description here

任务管理器: 这就是任务管理器显示的内容(我已经屏蔽了一些名称,等等) enter image description here

答案: 根据注释部分,Inno Setup始终会生成32位安装程序可执行文件。没有产生64位安装程序的机制。我在误解文档。

2 个答案:

答案 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