Take the 2-minute tour ×

I have a .NET application that runs on both x86 and x64. I'd like to have a 32 bit WiX installer that will work on both platforms but I'd like it to install to /Program Files/ rather than /Program Files (x86)/ on 64 bit operating systems.

How do you go about doing this?


My idea was to assign the ProgramFilesFolder or ProgramFiles64Folder value to my own property, depending on whether it was a 64 bit environment or not, and then use that property value on the directory.

I have very little experience with WiX so if this idea is even possible I have no idea. If it is what would you test on to see if it is an x64 environment? Also how would you then assign a property value from ProgramFilesFolder or ProgramFiles64Folder depending on the earlier 64 bit environment test.

Any help is appreciated!

share|improve this question
Did you ever find a solution? –  dan9298 Dec 3 '10 at 17:34

3 Answers 3

up vote 2 down vote accepted

I just found this, I tried your exact idea and no dice. You can't actually access ProgramFiles64Folder unless you are running a 64-bit installer.

I've given up and am just installing my 64-bit component to ProgramFilesFolder. It's not that nice aesthetically but it works :)

share|improve this answer

While it's true that MSI's support here is weak, you might want to read the following article and comments then decide for yourself how you want to proceed.


share|improve this answer

MSI doesn't support 32-bit packages installing to 64-bit directories.

share|improve this answer
heh, as you know, there are ways. <evil_grin/> –  Christopher Painter May 16 '10 at 17:15
It's not a 32-bit package. The author states that the program is written in .NET (and I'm guessing he's targeting ANY CPU, since that's the default, and most common). With a .NET executable or library that targets ANY CPU: On a 32-bit machine, when it's run, the JIT compiler will generate 32-bit code to execute, and on a 64-bit machine when it's run, the JIT compiler will generate 64-bit code to execute. It makes perfect sense, that he would always want to install it under "C:\Program Files", and never "C:\Program Files (x86)". –  BrainSlugs83 Jan 17 '13 at 2:40
Windows Installer doesn't support the AnyCPU concept; packages are either explicitly 32-bit or explicitly 64-bit. –  Bob Arnson Jan 18 '13 at 18:44

Your Answer


