Inno Setup 64位脚本配置后,安装文件仍写入x86目录的问题排查
问题
将现有Inno Setup脚本转换为64位Windows应用安装程序时,已在脚本中设置x64相关属性,但运行安装程序时文件仍被复制到x86文件夹。
相关脚本片段:
[Setup] PrivilegesRequired=admin ArchitecturesInstallIn64BitMode=x64 ArchitecturesAllowed=x64
安装程序日志片段:
Setup version: Inno Setup version 5.6.1 (u) Windows version: 10.0.22621 (NT platform: Yes) 64-bit Windows: Yes Processor architecture: x64 User privileges: Administrative 64-bit install mode: Yes ... Non-default bitness: 32-bit
文件复制配置:
Source: "bin\{#TesterWpfExe}"; DestDir: "{app}"; Flags: ignoreversion
此前转换另一个Inno Setup脚本为64位时运行正常,当前脚本存在差异但尚未定位,希望了解导致安装程序回退到32位模式的可能因素及排查建议。
排查与解决建议
可能的触发因素及排查步骤:
- 旧版本Inno Setup的兼容性bug:当前使用的5.6.1版本对64位安装模式的支持存在已知缺陷,直接升级到Inno Setup 6.x最新稳定版,大部分x64路径适配问题在新版本中已修复。
- 遗留的32位配置项:
- 检查脚本是否启用
UsePreviousAppDir,且之前的安装路径位于C:\Program Files (x86)下——这会导致安装程序自动沿用旧的32位路径; - 排查所有路径相关配置,确认未硬编码
{pfx86}等32位专属路径变量; - 检查文件复制项或
[Dirs]/[Components]段是否添加了32bit标志,该标志会强制以32位模式处理对应项。
- 检查脚本是否启用
- 编译环节的参数遗漏:确认编译时是否正确指定了x64架构。在Inno Setup IDE中,可通过「编译」→「配置」→「架构」确认已勾选x64;命令行编译时需添加
/DARCH=x64参数。 - 预处理器变量干扰:验证
{#TesterWpfExe}等预处理器变量是否指向64位程序文件,同时检查是否有其他预处理器逻辑(如#ifdef分支)强制启用了32位模式。 - 日志深度分析:翻查完整安装日志中
Non-default bitness: 32-bit前后的条目,通常会有明确的触发原因提示——比如检测到32位依赖组件、旧安装路径复用、用户手动选择x86文件夹等。 - 默认路径验证:测试默认安装流程,确认安装程序是否自动指向
C:\Program Files(64位程序默认路径),而非C:\Program Files (x86)。若默认路径正确,问题可能出在用户自定义选择或旧配置残留。
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

