WiX: Prevent 32-bit installer from running on 64-bit Windows

Posted by Tom the Junglist on Stack Overflow See other posts from Stack Overflow or by Tom the Junglist
Published on 2010-03-16T22:14:37Z Indexed on 2010/03/17 0:31 UTC
Read the original article Hit count: 853

Filed under:
|
|
|
|

Hi everyone,

Due to user confusion, our app requires separate installers for 32-bit and 64-bit versions of Windows. While the 32-bit installer runs fine on win64, it has the potential to create support headaches and we would like to prevent this from happening.

I want to prevent the 32-bit MSI installer from running on 64-bit Windows machines. To that end I have the following condition:

<Condition Message="You are attempting to run the 32-bit installer on a 64-bit version of Windows.">
  <![CDATA[Msix64 AND (NOT Win64)]]>
</Condition>

With the Win64 defined like this:

<?if $(var.Platform) = "x64"?>
<?define PlatformString = "64-bit"?>
<?define Win64 ?>
<?else?>
<?define PlatformString = "32-bit"?>
<?endif?>

Thing is, I can't get this check to work right. Either it fires all the time, or none of the time. The goal is to check presence of the run-time msix64 variable against the compile-time Win64 variable and throw an error if these don't line up, but the logic is not working how I intend it to. Has anyone come up with a better solution?

Thanks!

Tom

© Stack Overflow or respective owner

Related posts about wix3

Related posts about wix