Новый диалог в WiX, нажатие кнопки «Назад» пропускает диалог - PullRequest
2 голосов
/ 17 ноября 2010

Я новичок в WiX и пытаюсь настроить очередь диалогов, добавив новую.Имя нового диалога - ServerChoice, а поток:

SetupTypeDlg <-> Полный или Типичный <-> ServerChoice <-> VerifyReadyDlg

или

SetupTypeDlg <-> Пользовательский<-> CustomizeDlg <-> ServerChoice <-> VerifyReadyDlg

Единственная проблема - в первом случае в VerifyReadyDlg.«Назад» приводит меня к SetupTypeDlg и пропускает ServerChoice, хотя во втором потоке он работает как требуется.

Источник:

<UI>
        <DialogRef Id="ServerChoice" />
        <Publish Dialog="SetupTypeDlg" Control="TypicalButton" Event="NewDialog" Value="ServerChoice">1</Publish>
        <Publish Dialog="SetupTypeDlg" Control="CompleteButton" Event="NewDialog" Value="ServerChoice">1</Publish>
        <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="ServerChoice">1</Publish>
        <Publish Dialog="ServerChoice" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
        <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="ServerChoice">1</Publish>
        <Publish Dialog="ServerChoice" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="1">WixUI_InstallMode = "InstallCustom"</Publish>
        <Publish Dialog="ServerChoice" Control="Back" Event="NewDialog" Value="SetupTypeDlg" Order="2">WixUI_InstallMode = "InstallTypical" OR WixUI_InstallMode = "InstallComplete"</Publish>
        <Publish Dialog="ServerChoice" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="3">WixUI_InstallMode = "Change"</Publish>
        <Publish Dialog="ServerChoice" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="4">WixUI_InstallMode = "Repair" OR WixUI_InstallMode = "Remove"</Publish>
    </UI>

Какая-нибудь помощь для новичка?:)

Ответы [ 2 ]

4 голосов
/ 18 ноября 2010

На какой тип интерфейса вы ссылаетесь (Mondo?). Эта информация отсутствует в вашем фрагменте кода. Я думаю, что комментарий папы прав, у вас, вероятно, есть несколько событий для этой кнопки «Назад», так как сам Mondo перехватывает свои «обработчики» для этого события нажатия кнопки.

Недавно я создал пользовательский поток диалогов пользовательского интерфейса, и мой подход вообще не ссылался на WiXUI_Mondo. Вместо этого я создал свой новый пользовательский интерфейс на основе исходного кода Mondo (вы должны проверить источники WiX). В конце у меня есть этот код (нерелевантные части кода были удалены), и он отлично работает.

</p> <pre><code><Fragment> <!-- this is based on the WixUI_Mondo dialog set --> <UI Id="WixUI_MyNewUI"> <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" /> <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" /> <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" /> <Property Id="DefaultUIFont" Value="WixUI_Font_Normal" /> <Property Id="WixUI_Mode" Value="Mondo" /> <DialogRef Id="ErrorDlg" /> <DialogRef Id="FatalError" /> <DialogRef Id="FilesInUse" /> <DialogRef Id="MsiRMFilesInUse" /> <DialogRef Id="PrepareDlg" /> <DialogRef Id="ProgressDlg" /> <DialogRef Id="ResumeDlg" /> <DialogRef Id="UserExit" /> <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="CustomizeDlg">1</Publish> <!-- we do not use the SetupTypeDlg which allows user to choose either Typical, Complete or Custom installation; this ensures InstallCustom schema is run --> <Publish Dialog="WelcomeDlg" Control="Next" Property="WixUI_InstallMode" Value="InstallCustom" Order="2">1</Publish> <Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="2">WixUI_InstallMode = "InstallCustom"</Publish> <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="MyDlg1">1</Publish> <Publish Dialog="MyDlg1" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="1">MY_CONDITION_PROPERTY = 0</Publish> <Publish Dialog="MyDlg1" Control="Next" Event="NewDialog" Value="MyDlg2" Order="2">MY_CONDITION_PROPERTY = 1</Publish> <Publish Dialog="MyDlg2" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="1" /> <Publish Dialog="MyDlg2" Control="Back" Event="NewDialog" Value="MyDlg1">1</Publish> <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MyDlg1" Order="1">WixUI_InstallMode = "InstallCustom" and MY_CONDITION_PROPERTY = 0</Publish> <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MyDlg2" Order="2">WixUI_InstallMode = "InstallCustom" and MY_CONDITION_PROPERTY = 1</Publish> </UI> <UIRef Id="WixUI_Common" /> <UIRef Id="WixUI_ErrorProgressText" /> </Fragment>

0 голосов
/ 18 ноября 2010

Я думаю, что из вашего фрагмента вы пытаетесь сделать это в разделе просто интерфейса, и я не верю, что это возможно. Взгляните сюда http://neilsleightholm.blogspot.com/2008/08/customised-uis-for-wix.html Я думаю, это должно помочь.

...