2014-03-24 37 views
2

我正在使用wix3.8,并且在我安装MSI时,我需要InstallScopeDlg,它只能使用WixUI_Advanced提供,但我没有第一个许可协议对话框。Wix3.8 WixUI_Advanced对话框如何跳过许可协议

我见过很多关于如何跳过(或不显示)该对话框的帖子,但他们都使用不支持InstallScopeDlg的WixUI_InstallDir。

这是我有:

<Property Id="ApplicationFolderName" Value="Outlook Add In" /> 
<Property Id="WixAppFolder" Value="WixPerMachineFolder" /> 

<UI Id="UiSequence"> 
    <UIRef Id="WixUI_Advanced" /> 
</UI> 

任何人都可以请告诉我如何隐藏或跳过许可协议,同时仍然使用WixUI_Advanced。

回答

3

您需要了解Windows安装程序从对话框流向对话框的方式是通过使用NewDialogControlEvents。基本上Dialog 1将有一个下一个PushButton Control与一个NewDialog控制事件,说goto对话框2.然后Dialog 2将有一个后退按钮,说到对话框1. WiX用户界面扩展隐藏所有这一切,你试图使它容易创建一个基本的用户界面。但是,如果使用ORCA编辑构建的MSI并查看ControlEvent table,则可以看到它。

ControlEvent表有一个Ordering列。 MSDN doco并没有正确解释这一点,但它不是一个真正的订单,因为它是一个优先事项。评价最高的是真正的胜利。

在WiX中,Publish element对应于ControlEvent条目。诀窍是在正确的控件上编写NewDialog控件事件,对现有条目进行排序并绕过不需要的对话框或插入新的对话框。

如何做到这一点的一个例子可以在我的开源项目ISWIX的代码中找到here

+0

{\ DlgTitleFont}准备安装 <控件ID = “安装” 类型= “可通过按钮” X = “304” Y = “243” WIDTH = “56” HEIGHT = “17” 默认=“yes”Text =“Install”> Gustavo