为什么{pf32}在Inno Setup上返回错误的值?

时间:2018-03-15 23:38:10

标签: inno-setup

使用 Inno Setup 作为我的安装程序时,我需要访问{pf32}常量。但是,即使在64位架构计算机上运行 Inno Setup {pf32}的返回值仍然是:

  

c:\Program Files\而不是c:\Program Files (x86)\

这是为什么?在64位架构上,计算机{pf32}应返回c:\Program Files (x86)

这是Inno Setup中的错误吗?

这是日志:

<U+FEFF>2018-03-21 11:04:23.399   Log opened. (Time zone: UTC+01:00)
2018-03-21 11:04:23.399   Setup version: Inno Setup version 5.5.9 (u)
2018-03-21 11:04:23.399   Original Setup EXE: C:\Users\foo\installer-win.exe
2018-03-21 11:04:23.399   Setup command line: /SL5="$704EE,50905217,214528,C:\Users\foo\installer-win.exe" /log=c:\users\foo\install.log
2018-03-21 11:04:23.399   Windows version: 10.0.16299  (NT platform: Yes)
2018-03-21 11:04:23.399   64-bit Windows: Yes
2018-03-21 11:04:23.399   Processor architecture: x64
2018-03-21 11:04:23.399   User privileges: Administrative
2018-03-21 11:04:23.415   64-bit install mode: No
2018-03-21 11:04:24.649   Created temporary directory: C:\Users\foo\AppData\Local\Temp\is-UR59N.tmp
2018-03-21 11:04:29.930   Starting the installation process.
2018-03-21 11:04:30.087   Directory for uninstall files: C:\Program Files\prog1
2018-03-21 11:04:30.087   Creating new uninstall log: C:\Program Files\prog1\unins000.dat
2018-03-21 11:04:30.087   -- File entry --
2018-03-21 11:04:30.087   Dest filename: C:\Program Files\prog1\unins000.exe
2018-03-21 11:04:30.087   Time stamp of our file: 2018-03-21 11:04:23.118
2018-03-21 11:04:30.087   Installing the file.
2018-03-21 11:04:30.087   Uninstaller requires administrator: Yes
2018-03-21 11:04:30.087   Successfully installed the file.
2018-03-21 11:04:30.087   -- File entry --
2018-03-21 11:04:30.087   Dest filename: C:\Program Files\prog1\packet_filter.dll
2018-03-21 11:04:30.087   Time stamp of our file: 2018-03-21 02:53:36.000
2018-03-21 11:04:30.087   Installing the file.
2018-03-21 11:04:30.102   Successfully installed the file.
2018-03-21 11:04:30.102   -- File entry --
2018-03-21 11:04:30.102   Dest filename: C:\Program Files\prog1\prog1.exe

以下是我在DefaultDirName中定义template.iss的方式:

[Setup]
DefaultDirName={pf32}\prog1

请注意,当我特意添加:

[Setup]
ArchitecturesInstallIn64BitMode=x64

然后只有{pf32}才能正常展开到C:\Program Files (x86)

1 个答案:

答案 0 :(得分:3)

DefaultDirName帮助说明:

Help

它声明:

  

如果UsePreviousAppDiryes(默认值)并且安装程序发现已经安装了同一应用程序的先前版本,它将使用之前选择的目录替换默认目录名

我认为如果你卸载程序并再次使用日志。它默认为上次安装的文件夹。

UsePreviousAppDir帮助:

Help