Z powodu zamieszania użytkownika nasza aplikacja wymaga osobnych instalatorów dla 32-bitowych i 64-bitowych wersji systemu Windows. Chociaż 32-bitowy instalator działa dobrze na win64, może potencjalnie wywoływać bóle wsparcia i chcielibyśmy temu zapobiec.WiX: Zapobieganie uruchamianiu 32-bitowego instalatora w 64-bitowym systemie Windows
Chcę zapobiec uruchamianiu 32-bitowego instalatora MSI na 64-bitowych komputerach z systemem Windows. W tym celu mam następujący warunek:
<Condition Message="You are attempting to run the 32-bit installer on a 64-bit version of Windows.">
<![CDATA[Msix64 AND (NOT Win64)]]>
</Condition>
Z Win64 zdefiniowane następująco:
<?if $(var.Platform) = "x64"?>
<?define PlatformString = "64-bit"?>
<?define Win64 ?>
<?else?>
<?define PlatformString = "32-bit"?>
<?endif?>
Rzecz w tym, że nie może dostać ten czek do pracy w prawo. Albo strzela cały czas, albo nie ma czasu. Celem jest sprawdzenie obecności zmiennej wykonawczej msix64
względem zmiennej kompilacyjnej Win64
i zgłoszenie błędu, jeśli nie są one zgodne, ale logika nie działa tak, jak zamierzam. Czy ktoś wymyślił lepsze rozwiązanie?
W ten sposób udało się. Moim błędem było uzyskanie logiki wstecz dla "warunku". –
Msix64 wymaga Instalatora Windows 3.1, który nie jest domyślnie zainstalowany w systemie XP (patrz http://msdn.microsoft.com/en-us/library/aa370522(v=VS.85).aspx) –