EndDialog做什么?

时间:2009-08-18 22:06:57

标签: wix wix3

我有一个WIX安装程序,我正在尝试弄清楚这行实际上在做什么(附加到我的WIX对话框上的下一个按钮)。

<Publish Event="EndDialog" Value="Return" >1</Publish>

在我看来,这条线意味着我们在显示自定义对话框后将控制权交还给安装程序。但是,它如何知道接下来要显示的对话框。在我的情况下应该显示指示安装进度的对话框,但它会跳转到错误的对话框。

如果我将其更改为此(ProgressDlg是显示WixUI_Minimal UI集中安装进度的对话框,这是我实际想要跳转到的那个),

<Publish Event="NewDialog" Value="ProgressDlg" >1</Publish>

尝试安装时会抛出错误

1 个答案:

答案 0 :(得分:2)

好吧,我似乎偶然发现了现在有效的东西,但我真的不明白为什么。评论将不胜感激。

我有这个对话框序列,

WelcomeEulaDlg (part of WixUI_Minimal)
CustomInstall
StartAutomaticallyUI
IC3DatabaseSelection
GSDatabaseSelectionUI
ProgressDlg (part of WixUI_Minimal)

所以基本上我在EULA和安装进度对话框之间创建了4个对话框。

我在InstallUISequence块中有这些对话框,因此使用orca会在InstallUISequence表中显示这些对话框。

这似乎是我的问题。一旦我从块中删除了对话框并且只有块中的第一个对话框(即CustomInstall),它就可以正常工作。

现在它看起来像这样,而在该表之前有所有其他对话框

<InstallUISequence>
  <Show Dialog="CustomInstall" After="WelcomeEulaDlg" >NOT Installed</Show>
</InstallUISequence>

我将这些对话框链接在一起并将它们全部包含在内的方式只是将下一个和后一个按钮链接在一起。它们不需要在InstallUISequence中。

我从使用WixAware演示并在那里创建项目获得了这个想法。