我正在尝试自定义标准WiX进度对话框(我想让它显示ActionData)。我跟着Neil's guide to customising dialogs但问题是,原来的ProgressDlg仍然显示而不是我的。
我想我知道原因:如果你查看source to ProgressDlg,你可以看到这段代码:
<InstallUISequence>
<Show Dialog="ProgressDlg" Before="ExecuteAction" />
</InstallUISequence>
因此,与大多数对话框一样,不是由另一个对话框发布,而是直接作为 InstallUISequence 的一部分触发。那么如何覆盖呢?
答案 0 :(得分:4)
似乎进程对话框必须是ExecuteAction之前的InstallUISequence中的最后一件事 - 否则,因为Progress Dialogs是无模式的,所以它会立即显示为隐藏。
因此,我的解决方案只是确保我的自定义进度对话框显示在现有对话框之后:
<InstallUISequence>
<Show Dialog="CustomProgressDlg" After="ProgressDlg" />
</InstallUISequence>
答案 1 :(得分:2)
我试过这个来解决同样的问题。用于例如。 FeatureTree UI序列除了ProgressDlg之外,您还必须创建以下对话框的自己版本:
这是因为它们定义了一个引用ProgressDlg的Show元素。
答案 2 :(得分:1)
ProgressDlg仅在您引用时安排。如果要替换它,请自定义对话框序列以不引用ProgressDlg。
答案 3 :(得分:0)
@Klaus,幸运的是,您不必必须使用v3.11.1重新创建自己的对话框版本。在InstallUISequence
中,您可以覆盖对话框顺序,例如
<Show Dialog="WelcomeDlg" Before="ProgressDlgCustom">NOT Installed OR PATCH</Show>
请确保您省略了 Show / @ override -这是WelcomeDlg的确切条件。