Inno Setup以32位模式安装到SysWOW64

时间:2015-04-11 22:15:45

标签: windows inno-setup

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

我正在64位计算机上运行Inno Setup,即使安装模式为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和一个可执行文件。没有注册表或任何更复杂的东西。

有人经历过这样的事吗?

由于

1 个答案:

答案 0 :(得分:5)

SysWOW64文件夹是64位系统上32位安装的正确位置,与Program Files (x86)文件夹正确位置的方式相同。 SysWOW64是“Windows on Windows 64位”安装上的System32文件夹。

不可否认,微软应该更好地命名这些以避免混淆!即64位安装上的System32实际上是“System64”而SysWOW64是“System32”,就像普通Program Files实际上是“Program Files(x64)”一样,如果你想想到这一点。所有32位应用程序都在64位Windows上的WOW64(Windows 64位Windows 32位)模拟器上运行。