Как установить уровень функции в зависимости от условий в wix?

Я пытаюсь установить функции в зависимости от состояния. Первоначально я установил уровень функции на 1 и поместил условие внутри функции, чтобы изменить уровень функции.

Я не могу изменить уровень функции, и он всегда равен 1, независимо от условий.

<Feature
        Id = "AddinsFeature"
        Title  = "InstallAddin"
        Level  = "1"
        Absent="allow">
      <ComponentRef Id = "AddInComp"/>
        <Condition Level="0">
          <![CDATA[FALSE]]>
        </Condition>
</Feature>

2 ответа

Как использовать условия функции WiX, в основном объясняется здесь: https://www.firegiant.com/wix/tutorial/getting-started/conditional-installation/

Чтобы функция была установлена ​​на уровне, указанном вашим условием, условие должно быть оценено как истинное. Вы можете заставить это быть верным, устанавливая это к 1:

<Feature Id="AddinsFeature" Title="InstallAddin" Level="1" Absent="allow">

  <!-- Force condition to be true, which sets the feature to the Level attribute value -->
  <Condition Level="0">1</Condition>

  <ComponentRef Id = "AddInComp"/>
</Feature>

Выше мы устанавливаем уровень установки функции в 0, потому что его условие 1 истинно (число 1 истинно в логике MSI - по определению - как в логическом). В реальном мире состояние было бы намного сложнее - конечно.

Каждая установка имеет общий INSTALLLEVEL - и он действует как верхний предел, как объяснено здесь Крисом Пейнтером. Каждая функция, которая оценивается до уровня функции ниже или в INSTALLLEVEL, устанавливается по умолчанию.

Примечание: когда вы устанавливаете Feature level to 0 в вашем источнике WiX эта функция не отображается в графическом интерфейсе настройки, и она также не будет установлена ​​по умолчанию (подробнее см. ссылку ниже).

Манипулирование функциями может быть очень сложным. Несколько ссылок:

Вы можете отправить компоненты, присутствующие внутри функции, установив условие "Истина", как показано ниже. Всякий раз, когда для свойства 'SAMPLEFEATURE_UNLOCKED' устанавливается значение true, функция разблокируется. введите описание изображения здесь

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