Из-за путаницы пользователя для нашего приложения требуются отдельные установщики для 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
времени компиляции и выбросить ошибку, если они не совпадают, но логика не работает, как я ее намерен. Кто-нибудь придумал лучшее решение?