基于CheckBox值显示WIX对话框

时间:2010-05-10 18:28:23

标签: wix windows-installer installation

我有instakllation我必须根据复选框值显示Dialog。我最初将checkbox属性设置为true。

<Property Id="CHECKBOX_1_PROP" Value="TRUE" />

并根据复选框值显示对话框。如果确实如此,我必须显示Newdoalog_1,如果它是假的,我必须显示设置对话框

<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text="[ButtonText_Next]" TabSkip="no" Default="yes">
<Publish Event="SetTargetPath" Value="APPDIR">INSTALL</Publish>
<Publish Event="NewDialog" Value="NewDialog_1">INSTALL AND CHECKBOX_1_PROP="TRUE"</Publish>
<Publish Event="NewDialog" Value="SetupTypeDlg">INSTALL</Publish>
</Control>

<Control Id="CheckBox_1" Type="CheckBox" X="25" Y="164" Width="211" Height="26" Property="CHECKBOX_1_PROP" Text="Do you want to install the Samples" CheckBoxValue="CheckBox" TabSkip="no" Hidden="yes">
<Condition Action="show">INSTALL</Condition>
</Control>  

我的问题始终显示设置对话框为假状态。

请帮助解决这个问题。

2 个答案:

答案 0 :(得分:2)

我猜你的复选框没有设置字符串文字"TRUE",复选框在取消选中时会完全删除该属性。将该属性设置为任何值(“0”,“true”,“false”,“ - 1”)将导致检查它。所以忽略该值,只需检查属性是否存在

<Publish Dialog="MyDlg" Control="Next" Event="NewDialog" Value="CustomDlg1">PROP1</Publish>
<Publish Dialog="MyDlg" Control="Next" Event="NewDialog" Value="CustomDlg2">Not PROP1</Publish>

答案 1 :(得分:1)

要使SetupTypeDlg仅在CHECKBOX_1_PROP&lt;&gt;时显示“TRUE”代码看起来像这样:

    <Publish Event="NewDialog" Value="SetupTypeDlg"><![CDATA[INSTALL AND CHECKBOX_1_PROP<>"TRUE"]]></Publish>