我的问题是我想允许用户根据单选按钮选择安装可选组件组。 单选按钮和功能中指定的条件都绑定到名为" InstallType"的属性。 InstallType将设置为1以仅安装"客户端"文件,但2安装客户端和服务器文件。
条件安装基于InstallType的初始值正常工作,但是当用户更改InstallType时,将忽略新值。
以下是对话框中的代码:
<Fragment>
<Property Id="InstallType" Value ="1"/>
<UI>
<Dialog
Id ="InstallationTypeDlg" Width ="370" Height ="270" Title ="Test Install Type" NoMinimize ="no">
<Control Id ="Text1" Type ="Text" Text ="Choose Install Type:" Height="17" Width="200" X="10" Y="15" />
<Control Id ="InstallTypeRadioGroup" Type ="RadioButtonGroup" Property="InstallType" X="50" Y="35" Height ="40" Width ="300">
<RadioButtonGroup Property ="InstallType">
<RadioButton Value ="1" Text ="ClientOnly" Height ="17" Width ="90" X="0" Y="10" />
<RadioButton Value ="2" Text ="ClientAndServer" Height ="17" Width ="90" X="0" Y="10" />
</RadioButtonGroup>
</Control>
</Dialog>
</UI>
</Fragment>
以下是Product.wxs中的代码:
<Feature Id="ClientOnly" Title="Client Only" Level="1">
<ComponentGroupRef Id="ClientProductComponents" />
</Feature>
<Feature Id="ClientAndServer" Title="Client And Server" Level="0">
<ComponentGroupRef Id="ServerProductComponents" />
<Condition Level="1" >
<![CDATA[InstallType = "2"]]>
</Condition>
</Feature>
如图所示,代码将始终安装客户端文件,但从不安装服务器。 如果将InstallType初始化为&#34; 2&#34;,则按预期安装两个组件组。 我可以通过硬编码来强制结果&#34; true&#34;或&#34;假&#34;在条件评估中。
唯一似乎没有效果的是切换单选按钮对Product.wxs中的InstallType没有影响。 如果我在单选按钮对话框下游的对话框中放置一个文本框,我可以看到InstallType包含正确的值。
我正在使用WIX 3.10和VS2015。
任何人都知道什么是错的? 所有答复都赞赏 谢谢, 沃伦