Inno Setup 在 32 位模式下安装到 SysWOW64

Inno Setup install to SysWOW64 in 32Bit mode

我正在创建一个只需要安装 32 位文件的安装程序,它们可以在 64 位和 32 位机器上运行。

我是 运行 64 位机器上的 Inno 安装程序,即使安装模式是 32 位,文件最终仍位于 SysWOW64 文件夹中。 Dest 指令设置为 {sys}

Source: "C:\Users\Lablabla\Documents\Visual Studio 2013\Projects\Test\MyDll.dll"; DestDir: "{sys}"; Flags: 32bit

更奇怪的是,日志显示目标是 system32 并且安装模式是 32 位

2015-04-12 01:04:14.046   64-bit Windows: Yes
2015-04-12 01:04:14.046   Processor architecture: x64
2015-04-12 01:04:14.046   User privileges: Administrative
2015-04-12 01:04:14.046   64-bit install mode: No
....
2015-04-12 01:04:20.237   Dest filename: C:\Windows\system32\MyDll.dll

但是当设置完成后,文件位于 SysWOW64 文件夹中,即使可执行文件位于 Program Files (x86)

的正确位置

即使将特定的 32bit 标志设置为 dll 文件也会发生这种情况。

安装很简单,只有这个dll和一个可执行文件。没有注册表或任何更复杂的东西。

有人遇到过这样的事情吗?

谢谢

SysWOW64 文件夹是在 64 位系统上安装 32 位的正确位置,就像 Program Files (x86) 文件夹是正确位置一样。 SysWOW64 是 'Windows on Windows 64-bit' 安装上的 System32 文件夹。

诚然,Microsoft 应该在一致命名这些方面做得更好,以避免混淆!即 System32 在 64 位安装上实际上是 "System64" 而 SysWOW64 是 "System32",就像普通的 Program Files 实际上是 "Program Files (x64)" 如果你想这样想。 WOW64 中的所有 32 位应用程序 运行(Windows 32 位 Windows 64 位)仿真器在 64 位 Windows.