[wpkg-users] Problems with the WOW64 mess

Rainer Meier r.meier at wpkg.org
Tue May 18 11:14:46 CEST 2010


Hi Heiko,

On 18.05.2010 08:32, heiko.helmle at horiba.com wrote:
> I'm currently and regularly running into the WOW64 mess while trying to
> make my wpkg-package collection "Win64-ready". The problem consists of
> two facts:
> 
> * A 32 bit installshield .exe
> * the WOW brain-hurt diversion layer
> * MSI
> * WPKG running as user SYSTEM and the SYSTEM profile sitting in
> c:\Windows\system32\config\systemprofile by default.
> 
> The symptome is that the install works fine as a normal user, though
> there's an UAC prompt (obviously). But if run via WPKG-Client-Service
> (which runs as user SYSTEM) the install fails _very_ early.
> 
> The cause is the following.
> 
> * Installer gets run and unpacks its MSI to %TEMP% - %TEMP% expands to
> c:\Windows\system32\config\systemprofile\AppData\Temp
> * Because the installer is 32bit, WOW64 diverts this to
> c:\Windows\sysWOW64\config\systemprofile\AppData\Temp
> * Installer calls the MSI via MSI API
> * MSI Service is 64bit, so no WOW64 diversion - it looks into the
> ...system32.. path
> * FAIL -> File not found

I agree that folder redirection makes it quite hard to track what is really
happening on the system. However I am running Windows x64 since years (since my
first Windows Vista installation) and never had such issues yet.

In addition I was under the impression that %TEMP% expands to %SystemRoot%\temp
(c:\windows\temp) for the system account. At least I've never seen it expanding
to systemprofile\AppData\Temp which looks anyway wrong, if at all it should
expand to "systemprofile\AppData\Local\Temp" but this would also lead to the
problems you describe. But I am quite sure %TEMP% of the system profile expands
to "windows\Temp".

Even installers writing temporary data to %AppData% should work because the
installer/archive will be a 32-bit self-extracting archive writing to the
redirected SysWOW64 folder. Then it invokes msiexec.exe, in any case the 32-bit
process cannot open the 64-bit binary from the (real) system32\ folder and
executes SysWOW64\msiexec.exe which is a 32-bit application as well.

In any case I don't like boxed installers too much. So I used to extract
Installers which extract MSI files in advance and then work with pure MSI files.
In your case you might run your Installshield installer on a test system, then
during the installation do not close the installation window and grab the MSI
files from %TEMP%.


br,
Rainer



More information about the wpkg-users mailing list