Wix3.8 WixUI_Advanced对话框如何跳过许可协议

时间:2014-03-24 11:18:23

标签: wix windows-installer wix3.5 wix3.7 wix3.8

我正在使用wix3.8并且在我的安装MSI中,我需要InstallScopeDlg,它只能使用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时隐藏或跳过许可协议。

1 个答案:

答案 0 :(得分:3)

您需要了解Windows Installer从对话框流向对话框的方式是使用NewDialog ControlEvents。基本上Dialog 1将有一个Next PushButton Control,其中有一个NewDialog控制事件,它会显示goto对话框2.然后Dialog 2会有一个Back Button,它会显示转到Dialog 1.WiX UI扩展会隐藏所有这一切使创建基本UI变得容易。但是,如果使用ORCA编辑构建的MSI并查看ControlEvent table,则可以看到它。

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

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

在我的开源项目ISWIX的代码中可以找到here如何执行此操作的示例。