[wix-users] Installing to GetSystemDirectory() location

Phill Hogland phill.hogland at rimage.com
Wed Sep 30 10:20:23 PDT 2015


These posts in the old wix-users archive may be helpful.  The core issue is that a 64 bit MSI must be used to install 64 bit files (unless I guess a person decides to go down the black hole of unsupported hacks.)
http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Installing-a-64-bit-file-as-part-of-a-32-bit-setup-td7597319.html#a7597324
http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Installer-for-x86-and-x64-td7598936.html#a7598940

I would:
Create  a single WiX project which can be built to specify the architecture (see link in answer in above post), resulting in a 64 bit MSI for the 64 bit driver, and a 32 bit MSI for the Win32 driver.  In my case the driver is a signed driver with only some of the driver's files specific to a particular architecture. So to avoid breaking the driver signing, in each MSI all of the driver files are installed as ComponentGroup to the caching location, derived from the Bundle driven Burn variable ProgramFiles6432Folder.   The application is in a separate 32 bit MSI, bundle driven, using the Burn variable ProgramFilesFolder, to set a publc MSI property.

In each of the above cases the Burn variable with the company specific folders are passed to the MSI as MsiProperties and the MsiPackage condtions (or better the mba PlanPackageBegin logic) controls which package is installed for a particular installation.  The drivers use the WixDifxAppExtension, so the actual copying of files to system folders is controlled by the driver's signed INF file and the system's Class Installer.  ( I most familiar with Printer and USB function drivers, but have done some work, long ago, with filter drivers.)

Also 

-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Alejandro Exojo
Sent: Wednesday, September 30, 2015 11:37 AM
To: wix-users at lists.wixtoolset.org
Subject: Re: [wix-users] Installing to GetSystemDirectory() location

On 29 September 2015 at 19:45, Alejandro Exojo <alex at vikingsoft.eu> wrote:
> Right now I'm failing to get the driver in place with the following:
>
> <Directory Id="SystemFolder">
>  <Directory Id="DriversDir" Name="drivers">

I've tried other approaches like:

<Directory Id="WindowsFolder">
  <Directory Id="MySystem32Directory" Name="System32">

This always gets redirected to SysWOW64. If I put System332, I don't get the redirection, so I suppose there is no way around it, right?

I'm too beginner about this, but is it possible that the only reliable way to have the files installed in the right path is create a bundle to combine the 64 and 32 bit versions of the driver?

So far I've been able to avoid it because the application is 32 bit, and for some Shell Extensions (that have to be in 64 bit if the OS is), I've followed this approach:

http://stackoverflow.com/a/8229503
http://stackoverflow.com/questions/6191591/how-can-wix-based-installers-do-com-registration-for-both-32-and-64-bit-windows/8229503#8229503

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/


More information about the wix-users mailing list