使用wix安装程序中的复选框,根据用户选择安装的功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用wix安装程序中的复选框,根据用户选择安装的功能相关的知识,希望对你有一定的参考价值。

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

我不想在产品.wxs中添加PQR作为属性,因为我不希望默认情况下选中该复选框。

是否可以使用自定义操作执行此操作。

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

答案

您需要将该功能发布为AddLocal,并且在添加AddLocal之前需要调用Remove All。在“下一步”按钮上,您需要编写这些代码。

<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的任何属性。

以上是关于使用wix安装程序中的复选框,根据用户选择安装的功能的主要内容,如果未能解决你的问题,请参考以下文章

Wix安装程序:解压缩用户在安装期间选择的存档

使用 WiX 中的在线设置安装 .NET 框架

Wix 安装程序中的文件夹(在安装期间创建)对所有用户不可见

基于用户选择的Wix条件注册表写入

Wix XmlFile 元素执行得太早

Wix - 如何从安装目录安装后运行exe文件?