我所拥有的是一个带有一些控件的自定义退出对话框。这是来源:
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<UI>
<Dialog Id="MyExitDialog" Width="370" Height="220" Title="!(loc.ExitDialog_Title)">
<Control Id="Finish" Type="PushButton" X="236" Y="200" Width="56" Height="17" Default="yes" Cancel="yes" Text="!(loc.WixUIFinish)" />
<Control Id="Cancel" Type="PushButton" X="304" Y="200" Width="56" Height="17" Disabled="yes" Text="!(loc.WixUICancel)" />
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.DiskCostDlgBannerBitmap)" />
<Control Id="InstallText" Type="Text" X="25" Y="53" Width="330" Height="50" Text="Product [ProductName] was successfully installed" >
<Condition Action="show">NOT Installed</Condition>
</Control>
<Control Id="UninstallText" Type="Text" X="25" Y="53" Width="330" Height="50" Text="Product [ProductName] was successfully removed." >
<Condition Action="show">Installed</Condition>
</Control>
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="Back" Type="PushButton" X="180" Y="200" Width="56" Height="17" Disabled="yes" Text="!(loc.WixUIBack)" />
<Control Id="BottomLine" Type="Line" X="0" Y="190" Width="370" Height="0" />
<Control Id="Description" Type="Text" X="25" Y="23" Width="340" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.ExitDialogDescription)" />
<Control Id="Title" Type="Text" X="15" Y="6" Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.ExitDialogTitle)" />
<Control Id="LaunchAfterExitCheckBox" Type="CheckBox" X="25" Y="145" Width="330" Height="18" CheckBoxValue="1" Property="LAUNCHAFTEREXIT" Text="Run application after installation" >
<Condition Action="show">NOT Installed</Condition>
</Control>
</Dialog>
<InstallUISequence>
<Show Dialog="MyExitDialog" OnExit="success" Overridable="yes" />
</InstallUISequence>
<AdminUISequence>
<Show Dialog="MyExitDialog" OnExit="success" Overridable="yes" />
</AdminUISequence>
</UI>
</Fragment>
</Wix>
那些熟悉WIX来源的人很容易认识到我克隆了WIX中包含的ExitDialog,并给出了与几乎所有其他对话框(顶部的水平横幅)相同的布局,以解决“信箱”问题bug(通过控件发光的Windows背景)。现在问题是,“启动应用程序”复选框确实出现在安装和卸载时,似乎条件无效。但是,我可以通过设置LAUNCHCONDITION属性来成功勾选并取消选中该复选框,因此tehre可以使用此功能。整个问题有点奇怪,因为10行以后我使用完全相同的条件在“InstallText”和“UninstallText”之间切换文本,这样就可以了。
这是ExitDialog的原始代码:
<Control Id="OptionalCheckBox" Type="CheckBox" X="135" Y="190" Width="220" Height="40" Hidden="yes" Property="WIXUI_EXITDIALOGOPTIONALCHECKBOX" CheckBoxValue="1" Text="[WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT]">
<Condition Action="show">WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT AND NOT Installed</Condition>
</Control>
好的,他们有另一个条件AND-ed,这在我的项目中不存在,但那又怎么样?我的病情应该很好,但事实并非如此。我现在几个小时都在盯着这几行,试过这个,但没有成功。
我缺少什么?
Thx,Armin。
答案 0 :(得分:1)
您的条件已经开始&#34;显示&#34;动作。但是,所有控件都开始可见,因此您真正需要的是隐藏它们的操作。使用互补条件(即保持你的节目动作)对每个控件都采取两种行动并不是一个坏主意,尽管在这种情况下它可能不重要。