Click here to Skip to main content
15,038,345 members
Please Sign up or sign in to vote.
0.00/5 (No votes)

I have a pair of VS 2008 setup projects. One installs a 64 bit version and one installs a 32 bit version.

I need to prohibit the 32 bit installer from installing on 64 bit windows via any kludge or prescribed way.

I have googled and googled to no avail.

Can this be done?


Unfortunately, that's right, this is how it works: 32-bit installer installs on 64-bit Windows, because it has WoW64 allowing to run a 32-bit application. What to do about it? Say, you can make an external (32-bit) application which asks the OS ("what are you?") and then chooses correct version of the MSI and runs it…

It looks like a fundamental defect of the Windows Installer to me. Interestingly, the target platform of the MSI has nothing to do with actual target platform of the deployed code. In other words, if, by mistake, you stuff some MSI targeted as x86/64 or IE-64 with x84 (32-bit) executables, they will be successfully deployed (to "Program Files", not to "Program Files (x86)") and will even work there. The opposite situation is also possible. Only 64-bit MSI won't start on 32-bit Windows versions…

Not VersionNT64 as a Launch Condition in the 32 bit MSI seems to have done the trick.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900