我正在创建一个只需要安装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和一个可执行文件。没有注册表或任何更复杂的东西。
有人经历过这样的事吗?
由于
答案 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位)模拟器上运行。