2016-10-14 25 views
1

我在WiX中构建的安装程序没有固定的对话框流。它基于用户输入。例如,我有一个RadioButton来允许用户配置数据库或暂时跳过它。根据选择,下一个对话框应该不同。什么是最好的方法去做这件事?使用WiX工具集动态更改对话框顺序

我已经使用属性试过了,我之前已经设置过,在NewDialog事件的价值领域,像这样:

<Publish Event="NewDialog" Value="[NEXTDIALOG]" Order="1"> 
    1 
</Publish> 

但是,正如我后来发现这不会作为价值的工作字段不处理格式化文本,只是文字。

然后我做了一个谷歌搜索找到关于通过C#CustomAction显示一个新的对话框的例子,但找不到任何。也许这不是一个选项。

是迄今工作的唯一选项是通过使用条件,像这样:

<Publish Event="NewDialog" Value="Dialog1"> 
    [NEXTDIALOG] = "Dialog1" 
</Publish> 
<Publish Event="NewDialog" Value="Dialog2"> 
    [NEXTDIALOG] = "Dialog2" 
</Publish> 

但不知何故,这似乎不是最好的做法。在我看来,需要根据某些用户输入来改变对话框的顺序,这将非常常见,所以我希望有一个更原生的方法。有什么建议么?

提前致谢!

回答

1

通过设置属性并在发布事件中检查对话框来改变对话框的流程IS动态更改dailog流的正确方法。
但是,您必须保证,如果用户单击下一个对话框上的“后退”按钮,则必须跳回到用户进行初始选择的对话框。作为开发者,通常你会选择一个现有的对话框集合(WixUI_FeatureTree WixUI_InstallDir,WixUI_Minimal,WixUI_Advanced或WixUI_Mondo),根据自己的喜好更改流程并使用该对话框。

看看这个WIX页面。