Inno Setup以32位模式安装到SysWOW64

La *_*bla 1 windows inno-setup

我正在创建一个仅需要安装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
Run Code Online (Sandbox Code Playgroud)

奇怪的是,日志显示目标为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
Run Code Online (Sandbox Code Playgroud)

但是,完成安装后SysWOW64,即使可执行文件位于正确的位置,该文件也位于文件夹中。Program Files (x86)

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

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

任何人都经历过这样的事情吗?

谢谢

Rob*_*ley 5

SysWOW64文件夹是在64位系统上进行32位安装的正确位置,就像该Program Files (x86)文件夹是正确的位置一样。SysWOW64System32“ Windows on Windows 64位”安装上的文件夹。

诚然,为避免混淆,Microsoft应该在命名这些名称方面做得更好。即System32,在64位安装上,实际上是“ System64”,SysWOW64是“ System32”,就像平原Program Files真的是“ Program Files(x64)”一样,如果您想这样想的话。所有32位应用程序都在64位Windows上的WOW64(Windows 64位为Windows 32位)模拟器中运行。

  • [“本文”](http://www.samlogic.net/articles/32-64-bit-windows-folder-x86-syswow64.htm)中对此进行了很好的介绍。 (2认同)