根据用户输入安装功能

时间:2017-12-04 06:05:07

标签: wix wix3.6

我有2个功能。

  1. 网络设备。
  2. USB设备。
  3. 我需要他们一次安装一个。自定义对话框允许同时安装这两个功能,我想避免,所以我删除了“自定义”对话框(我使用“WixUI_Mondo”),我添加了一个带有2个单选按钮的自定义对话框。

    <Control Id ="ConnectionType" Type="RadioButtonGroup" Property="CONPROPERTY" X="20" Y="60" Width="330" Height="100" Text="test">
      <RadioButtonGroup Property="CONPROPERTY">
        <RadioButton Text="!(loc.ChooseConnectionTypeDevice)" Value="network" Height="18" Width="370" X="0" Y="20" />
        <RadioButton Text="!(loc.ChooseConnectionTypeUSB)" Value="usb" Height="18" Width="370" X="0" Y="40" />
      </RadioButtonGroup>
    </Control>
    

    现在我想根据单选按钮的选择安装上述功能。

    我尝试为我的功能添加一个条件。但它似乎无法正常工作。我想这不是在运行时工作。

    <Feature Id='NetworkDevice' Level="1"> 
    
    <ComponentRef Id='cmpConfig' />
    <ComponentRef Id='cmpCatalog' />
    
    <Condition Level="0"><![CDATA[CONPROPERTY<>"network"]]></Condition>
    </Feature>
    
    <Feature Id='UsbDevice' Level="1">
    <ComponentRef Id='cmpConfig' />
    <ComponentRef Id='cmpCatalog' />
    <ComponentRef Id='cmpUsbInstallation' />
    
    <Condition Level='0'><![CDATA[CONPROPERTY<>"usb"]]></Condition>
    </Feature>
    

    我怎样才能实现这种情况。任何人都可以给我一条路吗?

1 个答案:

答案 0 :(得分:1)

这不会像你期望的那样工作。 &#39;条件&#39;代码中的引用最终创作MSI Condition Table entires。这些是在您的UI弹出之前评估的。你想要的是&#39;发布&#39; ControlEvents将在用户单击&#34;下一步&#34;时打开/关闭功能。按钮。像这样:

<Publish Dialog="YourDialog" Control="Next" Event="AddLocal" Value="NetworkDevice" Order="1">![CDATA[CONPROPERTY=network]]</Publish>
<Publish Dialog="YourDialog" Control="Next" Event="Remove" Value="NetworkDevice" Order="2">![CDATA[CONPROPERTY<>network]]</Publish>
<Publish Dialog="YourDialog" Control="Next" Event="AddLocal" Value="UsbDevice" Order="3">![CDATA[CONPROPERTY=usb]]</Publish>
<Publish Dialog="YourDialog" Control="Next" Event="Remove" Value="UsbDevice" Order="4">![CDATA[CONPROPERTY<>usb]]</Publish>