installer - Inserting Custom Action between Dialogs (InstallUISequence) in WiX -
i have 2 custom dialog boxes (plus required ones exitdlg
, fatalerrordlg
, etc.), first 1 sets property using edit control , second 1 shows property using text control. here meaningful code:
<dialog id="dialoga" ...> <control id="controledit" type="edit" property="my_property" .../> <control id="controlnext" type="pushbutton" ...> <publish event="enddialog" value="return" /></control> </dialog>
and second 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>
and action sequence:
<installuisequence> <show dialog="dialoga" before="mycustomaction" /> <custom action="mycustomaction" before="dialogb" /> <show dialog="dialogb" before="executeaction" /> </installuisequence>
the custom action changes value of my_property
. problem how make button in dialogb
get dialoga
. using newdialog
simple, can't custom action executed between dialogs, or can i?
edit - 2013-05-02
after answer @caveman_dick, tried change dialoga
said, instead of using enddialog
, changed action="newdialog" value="dialogb"
. custom action isn't being called. if remove publish event go next dialog, ca called. if leave @caveman_dick said, can't dialoga
dialogb
.
edit - 2013-05-02
after searching in book wix 3.6: developer's guide windows installer xml, found following: "if have more 1 publish event, must have conditional statements inner text. otherwise, of events won't published."
so answer @caveman_dick correct, except need change following:
<publish ...>1</publish>
rather scheduling custom action in installuisequence
can publish on button click:
<dialog id="dialoga" ...> <control id="controledit" type="edit" property="my_property" .../> <control id="controlnext" type="pushbutton" ...> <publish event="doaction" value="mycustomaction">1</publish> <publish event="enddialog" value="return">1</publish> </control> </dialog>
edit: publish
element's condition needs explicitly evaluate true run, add "1"
text of publish
elements.
Comments
Post a Comment