我有两个自定义对话框(加上所需的项目ExitDlg
, FatalErrorDlg
等),第一个设置使用Edit控件的属性,第二个显示了使用文本控件这个属性。 这里是有意义的代码:
<Dialog Id="DialogA" ...>
<Control Id="ControlEdit" Type="Edit" Property="MY_PROPERTY" .../>
<Control Id="ControlNext" Type="PushButton" ...>
<Publish Event="EndDialog" Value="Return" /></Control>
</Dialog>
然后第二个对话框:
<Dialog Id="DialogB" ...>
<Control Id="ControlText" Type="Text" Text="[MY_PROPERTY]" .../>
<Control Id="ControlBack" Type="PushButton" ...>
<Publish Event="EndDialog" Value="Return" /></Control>
<Control Id="ControlNext" Type="PushButton" ...>
<Publish Event="EndDialog" Value="Return" /></Control>
</Dialog>
动作时序:
<InstallUISequence>
<Show Dialog="DialogA" Before="MyCustomAction" />
<Custom Action="MyCustomAction" Before="DialogB" />
<Show Dialog="DialogB" Before="ExecuteAction" />
</InstallUISequence>
自定义操作改变的值MY_PROPERTY
。 我的问题是如何在后退按钮DialogB
回到DialogA
。 使用NewDialog
很简单,但我不能让对话框之间要执行的自定义操作,或可以吗?
编辑- 2013年5月2日
从@caveman_dick答案后,我试图改变DialogA
几乎就像他说的,但不是使用EndDialog
,我改Action="NewDialog" Value="DialogB"
。 但现在的自定义操作不会被调用。 如果删除了发布活动转到下一个对话框,然后在CA被调用。 如果我离开的@caveman_dick说,我不能回去DialogA
从DialogB
。
编辑- 2013年5月2日
图书搜索的WiX 3.6之后:开发人员指南到Windows Installer XML,我发现了以下内容:“如果你有一个以上的发布活动,它们必须具有的条件语句作为自己内心的文字,否则,所有的事件根本不会予以公布。”
所以从@caveman_dick的答案是正确的,但您需要更改为以下:
<Publish ...>1</Publish>