【问题标题】:Feature to be installed depending upon user selection using checkbox in wix installer使用 wix 安装程序中的复选框根据用户选择安装的功能
【发布时间】:2018-11-29 17:37:00
【问题描述】:

我在 wix 中创建了具有 3 个复选框的对话框。用户可以一次选择一个或全部。根据复选框的选择,需要选择和安装该功能。

假设我有 3 个应用程序(ABC、DEF、GHI),这些应用程序是在带有条件语句的功能中定义的。

<Control Id="ABC" Type="CheckBox" X="190" Y="110" Width="50" Height="17" Property="PQR" CheckBoxValue="1" Text="ABC">

对于其他 2 个应用程序,我也有复选框控件。

现在我有如下 3 个功能。

<Feature Id="abc" Title="ABC" Level="0">
  <Condition Level="1"><![CDATA[PQR="1"]]></Condition>
  <ComponentRef Id="InstallABC"/>
</Feature>

我不想将 PQR 作为属性添加到 product.wxs 中,因为我不希望默认选中该复选框。

是否可以使用自定义操作来做到这一点。

任何答案或建议将不胜感激。

【问题讨论】:

    标签: checkbox wix windows-installer


    【解决方案1】:

    您需要将该功能发布为 AddLocal 并且明确地需要在添加 AddLocal 之前调用 Remove All。 在 Next 按钮上,您需要编写这些代码。

    <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>
    

    接下来该功能将如下所示。

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

    注意:- 功能不应该有 Level 元素,也不要在 Product.wxs 等任何地方显式地为 CheckBox 添加任何属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 2012-09-23
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多