You're looking for something defined at build time. Try $(env.ProgramFiles).
Windows defines the ProgramFiles environment variable to the location of the Program Files folder. I'm not guaranteeing this will work as I don't have an x64 system and don't know whether ProgramFiles is defined differently for a 64-bit versus 32-bit process. I _think_ that since the WiX toolset is compiled with .NET 1.1, all the programs will run in 32-bit processes. Personally I prefer to put all my dependencies under my source tree and check them into source control so I can be certain that all builds are fully reproducible. -- Mike Dimmick -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Geoff Finger Sent: 22 May 2007 23:23 To: wix-users@lists.sourceforge.net Subject: [WiX-users] Allowing sources from either x64 or x86 I've got a rather simple question that is probably due to some obvious in hindsight error, but I'm totally stymied by it and haven't had any luck searching for a solution. I just recently switched from an x86 machine to an x64 machine running XP x64. I suddenly find that some of the installers I've written don't compile because they're looking for files in "Program Files" rather than "Program Files (x86)". In particular the Microsoft VC80 CRT and MFC merge modules in Program Files (x86)\Common Files\Merge Modules are being problematic. I thought for starters I could try using ProgramFilesFolder to see if that would resolve properly, but I can't get it to work correctly. I've got the following setup in the relevant wxs file: <?if ($(var.PLATFORM) = "Win32")?> <?define PROGRAMFILESFOLDER = "ProgramFilesFolder"?> <Directory Id="$(var.PROGRAMFILESFOLDER)" Name="PFiles"> So at first I thought it'd try <Merge Id="CRT" Language="0" src="$(var.PROGRAMFILESFOLDER)\Common Files\Merge Modules\Microsoft_VC80_CRT_x86.msm" DiskId="1" FileCompression="yes" /> However that results in the error: Error 25 error LGHT0100 : File of type 'Module' with name 'ProgramFilesFolder\Common Files\Merge Modules\Microsoft_VC80_CRT_x86.msm' could not be found. light.exe So it's getting resolved to ProgramFilesFolder but not getting any further. I tried [ProgramFilesFolder] instead, but that didn't work either. Is there some other variable I should be using or am I going about this in entirely the wrong way? Thanks! ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users