WiX: Prévenir les 32 bits de l'installateur de s'exécuter sur Windows 64 bits

En raison de la confusion de l'utilisateur, notre application nécessite de séparer les programmes d'installation pour les versions 32 bits et les versions 64 bits de Windows. Tandis que la version 32 bits de programme d'installation s'exécute correctement sur win64, il a le potentiel pour créer de l'appui des maux de tête et nous tenons à empêcher que cela se produise.

Je veux éviter que le 32 bits MSI programme d'installation à partir de l'exécution sur Windows 64 bits machines. À cette fin, j'ai la condition suivante:

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

Avec le Win64 définie comme ceci:

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

Chose est, je ne peux pas obtenir cette case à travailler correctement. Soit il se déclenche tout le temps, ou d'aucun temps. L'objectif est de vérifier la présence de l'exécution msix64 variable contre le au moment de la compilation Win64 variable et renvoie une erreur si elles ne sont pas alignés, mais la logique n'est pas de travail que j'ai l'intention de faire. Quelqu'un a une meilleure solution?

InformationsquelleAutor Tom Corelis | 2010-03-16