Member 11120607 Ответов: 1

Функция, которая будет установлена в зависимости от выбора пользователя с помощью флажка в установщике wix


Я создал диалог в wix, который имеет 3 флажка. пользователь может выбрать либо один, либо все сразу. в зависимости от выбора флажка эта функция должна быть выбрана и установлена.

Предположим, у меня есть 3 приложения (ABC, DEF, GHI), и они определены в операторе feature with condition:
<Control Id="ABC" Type="CheckBox" X="190" Y="110" Width="50" Height="17" Property="PQR" CheckBoxValue="1" Text="ABC">
аналогично для других 2 приложений также у меня есть элемент управления checkbox.

Теперь у меня есть 3 функции, как показано ниже:
<Feature Id="abc" Title="ABC" Level="0">
  <Condition Level="1"><![CDATA[PQR="1"]]></Condition>
  <ComponentRef Id="InstallABC"/>
</Feature>
Я не хочу добавлять свойство PQR as в product.wxs, потому что не хочу, чтобы флажок был установлен по умолчанию.

Можно ли это сделать с помощью пользовательского действия.

Я буду благодарен за любой ответ или предложения.

Что я уже пробовал:

Путем создания свойств в пользовательском действии и в product.wxs

Оценка значения свойства не учитывается при выборе объекта(создание метки объекта = 1 при условии)

1 Ответов

Рейтинг:
2

Member 11120607

You need to publish the feature as AddLocal and explicitly you need to call Remove All before adding AddLocal. On Next button you need to write these code.

<Control Id="Next" Type="PushButton" X="248" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)" >
          <Publish Event="Remove" Value="ALL" Order="1">1</Publish>
          <Publish Event="AddLocal" Value="Feature1">CheckBox1="1"</Publish>
          <Publish Event="AddLocal" Value="Feature2">CheckBox2="1"</Publish>
</Control>

Next the feature will look like this.

<Feature Id="Feature1" Title="ABC">
  <ComponentRef Id="InstallABC"/>
</Feature>

    Note:- Feature should not have the Level Element, Also Don't add any Property for your CheckBox explicitly anywhere like Product.wxs.