在链 wix 中插入自定义对话框

Posted

技术标签:

【中文标题】在链 wix 中插入自定义对话框【英文标题】:Inserting custom dialog in chain wix 【发布时间】:2013-09-30 12:51:11 【问题描述】:

我想修改自定义对话框,所以我创建了一个。但我想在 mondo UI 中的欢迎对话框之后显示这个自定义对话框。

如果我这样做:

<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="CustomizeDlg">1</Publish>
<Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="3">1</Publish>
<Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="CustomCustomizeDlg" Order="4">1</Publish>
<Publish Dialog="CustomCustomizeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">1</Publish>
<Publish Dialog="CustomCustomizeDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="4">1</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="CustomCustomizeDlg" Order="4">1</Publish>

然后一切正常......但如果我做这样的事情:

<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="CustomCustomizeDlg">1</Publish>
<Publish Dialog="CustomCustomizeDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="3">1</Publish>
<Publish Dialog="CustomCustomizeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">1</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="CustomCustomizeDlg" Order="4">1</Publish>

然后没有显示自定义对话框,而是在欢迎后显示许可证对话框...

我根本没明白...这种行为对我来说很奇怪...有什么想法吗?

编辑:

我只是发现在 msi DB 中,在 WelcomeDlg 上注册了 CustomCustomizeDlg 上的控制事件,还有 LicenseDialog 和订单 1...如果我删除 licenseDialog 的行,它工作正常,所以现在我的问题是如何删除该行没有使用 orca...

【问题讨论】:

【参考方案1】:

您不需要删除它,只需添加大于 1 的控制事件(尝试 10 左右以确保),它将优先。

当多个NewDialog 是要打开的候选者时,只会选择具有最大顺序号的那个。您可以在here 或here 找到类似的问题。

此外,您可以在MSDN ControlEvent table documentation 中阅读有关事件排序的信息:

需要注意的例外是每个控件最多可以发布一个NewDialog 或一个SpawnDialog 事件。如果您需要在此表中创作多个 NewDialog 和 SpawnDialog 控件事件,还应在 Condition 字段中包含条件语句,以确保最多发布一个事件。如果为同一个控件选择了多个NewDialog和SpawnDialog控件事件,则激活该控件时仅发布Ordering列中值最大的事件。

【讨论】:

以上是关于在链 wix 中插入自定义对话框的主要内容,如果未能解决你的问题,请参考以下文章

如何在关闭对话框的 Wix 安装程序中停止自定义操作中的进度条

Windows Installer XML (WiX):添加自定义对话框

WIX安装程序无法正确显示WixUI对话框的自定义图像

在卸载期间显示来自 C# 自定义操作的 WiX 对话框

Wix - 自定义操作返回代码 - 处理

使用 wix 的自定义对话框给出重复符号错误