Installshield Basic MSI Установка строго для 32-разрядных

У меня есть решение с несколькими dll, которые являются 64-битными или 32-битными, которые я хочу развернуть с помощью установщика. У меня есть два основных проекта MSI в InstallShield 2012, один для 32-битных систем, а другой для 64-битных систем. У меня также есть требование, чтобы 64-разрядный установщик не работал на 32-разрядных системах, и наоборот.

Ограничить 64-битный установщик для 64-битных систем легко, но я не смог определить, находится ли он в 32-битной системе.

Вот решения, которые я уже попробовал:

Проверка свойств установщика Windows:

  • NOTintel64 (не работает, так как относится к процессору, а не к ОС)
  • VersionNT64 = что угодно (не работает, так как значение не определено для 32-битных систем)

Кроме того, мне известна переменная окружения PROCESSOR_ARCHITECTURE, которая содержит x86 для 32-битной ОС, но я не смог найти способ прочитать ее в проекте Basic-MSI.

1 ответ

Решение

Вы пробовали "Not VersionNT64" в качестве условия запуска в вашей установке x86? Это прекрасно работает, чтобы запретить установку в системе x64. В этом условии нет "= что бы то ни было". На x86 он не определен, что означает, что это false, что означает, что условие запуска оценивается как true только в системах x86.

Другие вопросы по тегам