在链 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 安装程序中停止自定义操作中的进度条