2

我正在使用 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 的同时隐藏或跳过许可协议。

4

1 回答 1

3

您需要了解 Windows Installer 在对话框之间流动的方式是通过使用NewDialog ControlEvents。基本上,对话框 1 将有一个带有 NewDialog 控件事件的 Next PushButton 控件,该控件显示转到对话框 2。然后,对话框 2 将有一个返回按钮,显示转到对话框 1。WiX UI 扩展程序对您隐藏了所有这些内容,试图让它轻松创建基本 UI。但是,如果您使用 ORCA 编辑构建的 MSI 并查看ControlEvent 表,则可以看到它。

ControlEvent 表有一个 Ordering 列。MSDN doco 并没有真正正确地解释这一点,但这并不是一个真正的命令,而是一个优先事项。评估为真获胜的最高值。

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

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

于 2014-03-24T13:17:20.557 回答