Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Windows Installer issue on 64-bit system

8 views
Skip to first unread message

Pertulator

unread,
Oct 29, 2009, 9:14:39 AM10/29/09
to
I have a problem with Windows Installer under 64-bit Vista system.
My installer package need to install some files to system printer
drivers directory. So i created custom action procedure which calls
GetPrinterDriverDirectory API and stores its return value (for example
C:\Windows\system32\spool\DRIVERS\x64) to PrinterDriverDirectory
property.
PrinterDriverDirectory property is used as installation directory by
those components which neeed to be installed to printer drivers
directory.
When installation runs on 32-bit systems all this works fine and files
are installed correctly to printer drivers directory.
But when i run installation on 64-bit Vista system something goes
wrong: my files are installed to C:\Windows\SysWow64\spool\DRIVERS\x64
directory instead of C:\Windows\system32\spool\DRIVERS\x64. So later
AddPrinterDriver API fails because it cannot find printer driver
files.
I know there is File System Redirector in 64-bit versions of Windows
which redirects 32-bit applications from %windir%\System32 directory
to %windir%\SysWow64 directory. But MSDN says %windir%\system32\spool
directory is an exception and is not redirected (http://
msdn.microsoft.com/en-us/library/aa384187(VS.85).aspx).
I have 32-bit file manager (far.exe) so i can check if some directory
is redirected or not for 32-bit application. When i open %windir%
\system32\spool directory in Far file manager it is not redirected to
%windir%\SysWow64\spool directory (this behaviour agrees with what
MSDN says). But when windows installer service installs my package it
looks like system32\spool is redirected to SysWow64\spool !!! Is this
a bug in windows installer service?

Wilson, Phil

unread,
Oct 29, 2009, 6:58:23 PM10/29/09
to
I think you really need a proper native 64-bit install as well as a 32-bit
install. The redirector is triggered depending on whether the component is
marked as a 32 or 64-bit one, that'a likely to be something to do with what
you're seeing:

http://blogs.msdn.com/heaths/archive/2005/10/24/484266.aspx

and

http://blogs.msdn.com/heaths/archive/2008/01/15/different-packages-are-required-for-different-processor-architectures.aspx

--
Phil Wilson
The Definitive Guide to Windows Installer
http://www.apress.com/book/view/1590592972


"Pertulator" <igor...@gmail.com> wrote in message
news:0d218a6b-6cc1-40f1...@j24g2000yqa.googlegroups.com...

Pertulator

unread,
Nov 25, 2009, 5:48:49 AM11/25/09
to
Yes, my installer it a 32-bit one. And my components are not marked as
64-bit. So it should be installed with redirector turned on. Right?
But my components are installed to %windir%\system32\spool directory
which is not redirected for 32-bit applications (http://
msdn.microsoft.com/en-us/library/aa384187(VS.85).aspx).
So it looks like windows installer on 64-bit platform uses its own
redirection implementation which is not the same as Windows's File
System Redirector. I think this is a bug in windows installer service.

On Oct 30, 12:58 am, "Wilson, Phil" <ph...@wonderware.nospam.com>
wrote:


> I think you really need a proper native 64-bit install as well as a 32-bit
> install. The redirector is triggered depending on whether the component is
> marked as a 32 or 64-bit one, that'a likely to be something to do with what
> you're seeing:
>
> http://blogs.msdn.com/heaths/archive/2005/10/24/484266.aspx
>
> and
>

> http://blogs.msdn.com/heaths/archive/2008/01/15/different-packages-ar...


>
> --
> Phil Wilson
> The Definitive Guide to Windows Installerhttp://www.apress.com/book/view/1590592972
>

> "Pertulator" <igor....@gmail.com> wrote in message

0 new messages