Не понимаю, условия WiX булевой логики - PullRequest
8 голосов
/ 16 июля 2011

Чтобы проверить, установлен ли .NET Framework, вы можете использовать это условие:

<Condition Message="This application requires .NET Framework">
    <![CDATA[Installed OR NETFRAMEWORK20]]>
</Condition>

Я не понимаю, почему два подусловия (Установлено, NETFRAMEWORK20) объединяются с оператором OR, скорее я ожидал бы нечто подобное, когда оба условия объединяются с AND:

<![CDATA[Installed AND NOT NETFRAMEWORK20]]>

Где мое недоразумение?

1 Ответ

15 голосов
/ 16 июля 2011

Поскольку элемент <Condition> является условием для установщика продолжить (и сообщение используется только в случае сбоя условия ).

Итак,мы хотим продолжить запуск этой установки, если либо :

  1. Этот пакет уже установлен.Мы выполняем какое-то другое действие (скажем, удаление), и нам не нужно проверять какие-либо другие условия, или
  2. (потому что первое условие не было выполнено) Мы специально запускаемся для установкипакет, и мы обнаружили, что установлен .NET Framework 2.0 (или лучше).

Если <Condition> был просто NETFRAMEWORK20, а кто-то только что удалил .NETFramework, а затем попытался удалить ваш пакет, условие не выполнится и отобразится сообщение «Для этого приложения требуется .NET Framework» - что очень раздражает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...