我正在创建一个只需要安装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和一个可执行文件。没有注册表或任何更复杂的。
谁经历过这样的事情?
谢谢
SysWOW64
文件夹是在64位系统上进行32位安装的正确位置,就像Program Files (x86)
文件夹是正确的位置一样。 SysWOW64
是'Windows on Windows 64-bit'安装上的System32
文件夹。
不可否认,微软应该更好地命名这些以避免混淆!即,64位安装的System32
实际上是“System64”而SysWOW64
是“System32”,就像普通的Program Files
真的是“Program Files(x64)”,如果你想这样想的话。所有32位应用程序都在64位Windows上的WOW64(Windows 64位Windows 32位)模拟器上运行。