如何根据条件选择显示OnExit的WIX对话框

时间:2013-05-28 08:13:31

标签: dialog wix conditional show ca

我的设置项目中有两个WIX对话框

安装程序终止且状态为“成功”时显示的最终表单

<Dialog Id="FinishedForm">
   ...
</Dialog>

和页面显示有关我们产品的几张幻灯片。

<Dialog Id="IntroductionTourPage">
   ...
   <Control Id="SkipTourButton" Type="PushButton">
      <Publish Event="NewDialog" Value="FinishedForm">1</Publish>
   </Control>
   ...
</Dialog>

我想要只在产品安装(未升级或删除)后显示IntroductionTourPage,但我不知道该怎么做。我试过了

<InstallUISequence>
    <Show Dialog="FinishedForm" OnExit="success">Condition</Show>
    <Show Dialog="IntroductionTourPage" OnExit="success">NOT Condition</Show>
</InstallUISequence>

但它在Wix中无效,所以这种方法失败了。然后我试了

<InstallUISequence>
    <Show Dialog="FinishedForm" Sequence="1">Condition</Show>
    <Show Dialog="IntroductionTourPage" Sequence="2">NOT Condition</Show>
</InstallUISequence>

它不起作用。我试过了

<InstallUISequence>
    <Show Dialog="FinishedForm" OnExit="success"/>
    <Show Dialog="IntroductionTourPage" Before="FinishedForm">Condition</Show>
</InstallUISequence>

但它在Wix中也无效。

现在我想试试smth:

<InstallUISequence>
    <Custom Action="CA_ChooseAndShowDialogBasedOnCondition" OnExit="success"/>
</InstallUISequence>

但我找不到如何从CA显示Wix对话框的任何示例。

有什么想法吗?

提前致谢, 安德烈

1 个答案:

答案 0 :(得分:1)

我有一些不同的解决方案。如果您发现这适合您的要求,请尝试此操作。

FinishedForm 中的所有控件添加到 IntroductionTourPage 。使用 IntroductionTourPage 作为成功退出对话框。根据条件在 IntroductionTourPage 对话框中显示控件。

现在 IntroductionTourPage 将根据条件同时充当FinishedFormIntroductionTourPage。如果需要,您可以使用IntroductionTourPage中的FinishedForm对话框。

示例: IntroductionTourPage中的标题控件

   <Control Id="Title" Type="Text" X="188" Y="22" Width="330" Height="22" Transparent="yes" NoPrefix="yes" Text="Welcome to the IntroductionTourPage" >
            <Condition Action="hide">Condition</Condition>
   </Control>
  <Control Id="FinishTitle" Type="Text" X="188" Y="15" Width="316" Height="22" Transparent="yes" NoPrefix="yes" Text="Completed the Sample Setup Wizard" Hidden="yes">
            <Condition Action="show">Condition</Condition>
  </Control>