Reputation: 8718
I'm creating an installer which only needs to install 32bit files, they work on both 64 and 32 bit machines.
I'm running the Inno Setup on a 64bit machine and even though the install mode is 32bit the files still end up in the SysWOW64
folder. The Dest
directive sets to {sys}
Source: "C:\Users\Lablabla\Documents\Visual Studio 2013\Projects\Test\MyDll.dll"; DestDir: "{sys}"; Flags: 32bit
The weirder thing is that the log shows that the destination is system32
and installation mode as 32-bit
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
But when the setup is done the file is in the SysWOW64
folder, even though the executable file is in the correct place of Program Files (x86)
This happens even when setting the specific 32bit
flag to the dll file.
The installation is very simple, only this dll and an executable. No registry or anything more complex.
Anyone experienced such thing?
Thanks
Upvotes: 2
Views: 3544
Reputation: 1957
The SysWOW64
folder is the correct place for a 32-bit installation on a 64-bit system, in the same way that the Program Files (x86)
folder is the correct place. SysWOW64
is the System32
folder on a 'Windows on Windows 64-bit' installation.
Admittedly, Microsoft should have done a much better job at naming these consistently to avoid confusion! i.e. System32
on a 64-bit installation is really "System64" and SysWOW64
is "System32", just as the plain Program Files
is really "Program Files (x64)" if you want to think of it that way. All 32-bit applications run in the WOW64 (Windows 32-bit on Windows 64-bit) emulator on 64-bit Windows.
Upvotes: 8