Из-за путаницы пользователей нашему приложению требуются отдельные установщики для 32-разрядных и 64-разрядных версий Windows. Хотя 32-разрядный установщик работает нормально на win64, он потенциально может создать проблемы с поддержкой, и мы хотели бы предотвратить это.
Я хочу запретить запуск 32-разрядного установщика MSI на 64-разрядных компьютерах с Windows. Для этого у меня есть следующее условие:
<Condition Message="You are attempting to run the 32-bit installer on a 64-bit version of Windows.">
<![CDATA[Msix64 AND (NOT Win64)]]>
</Condition>
С Win64, определенным так:
<?if $(var.Platform) = "x64"?>
<?define PlatformString = "64-bit"?>
<?define Win64 ?>
<?else?>
<?define PlatformString = "32-bit"?>
<?endif?>
Дело в том, что я не могу заставить этот чек работать правильно. Либо он срабатывает постоянно, либо ни разу. Цель - проверить наличие переменной msix64
времени выполнения и переменной Win64
времени компиляции и выдать ошибку, если они не совпадают, но логика не работает так, как я намереваюсь. Кто-нибудь придумал лучшее решение?