Wstawianie akcji niestandardowej między oknami dialogowymi (InstallUISequence) w WiX
Mam dwa niestandardowe okna dialogowe (plus wymagane)ExitDlg
, FatalErrorDlg
itd.), pierwszy z nich ustawia właściwość za pomocą kontrolki Edycja, a drugi pokazuje tę właściwość za pomocą kontrolki Tekst. Oto znaczący kod:
<Dialog Id="DialogA" ...>
<Control Id="ControlEdit" Type="Edit" Property="MY_PROPERTY" .../>
<Control Id="ControlNext" Type="PushButton" ...>
<Publish Event="EndDialog" Value="Return" /></Control>
</Dialog>
A potem drugie okno dialogowe:
<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>
A sekwencja akcji:
<InstallUISequence>
<Show Dialog="DialogA" Before="MyCustomAction" />
<Custom Action="MyCustomAction" Before="DialogB" />
<Show Dialog="DialogB" Before="ExecuteAction" />
</InstallUISequence>
Działanie niestandardowe zmienia wartośćMY_PROPERTY
. Moim problemem jest, jak zrobić przycisk WsteczDialogB
Wróć doDialogA
. Za pomocąNewDialog
jest prosty, ale nie mogę wykonać akcji niestandardowej między oknami, czy mogę?
edytuj - 2013-05-02
Po odpowiedzi z @caveman_dick próbowałem zmienićDialogA
prawie tak jak powiedział, ale zamiast używaćEndDialog
, Zmieniłam naAction="NewDialog" Value="DialogB"
. Ale teraz nie jest wywoływana akcja niestandardowa. Jeśli usunę zdarzenie Publikuj, aby przejść do następnego okna dialogowego, wywoływany jest urząd certyfikacji. Jeśli wyjdę jako @caveman_dick powiedział, nie mogę wrócić doDialogA
zDialogB
.
edytuj - 2013-05-02
Po przeszukaniu w książceWiX 3.6: Przewodnik programisty po XML Instalatora Windows, Znalazłem następujące: „jeśli masz więcej niż jedno wydarzenie Publikuj, muszą mieć instrukcje warunkowe jako tekst wewnętrzny. W przeciwnym razie wszystkie zdarzenia po prostu nie zostaną opublikowane”.
Odpowiedź z @caveman_dick jest poprawna, z wyjątkiem tego, że musisz zmienić na następujące:
<Publish ...>1</Publish>