Как я могу добавить два диалоговых окна конфигурации для двух независимых необязательных функций в Wix - PullRequest
1 голос
/ 25 ноября 2011

Я обновляю проект установки, который имел одну функцию с соответствующим диалогом конфигурации для этой функции.
Теперь мне нужно добавить еще одну функцию с собственным диалоговым окном конфигурации в проект установки, и когда пользователь выбирает диалоговое окно конфигурации Feature1 для отображения Feature1, когда пользователь выбирает диалоговое окно конфигурации Feature2 для отображения Feature2, и когда пользователь выбирает обе функции, отображают затем Feature1. диалоги конфигурации feature2 в последовательности. Очевидно, что если пользователь не выберет ни одного, программа установки не сможет продолжить работу, поскольку у нее нет функций для установки. Это последнее правило еще не отражено здесь в проекте. Это последний фрагмент пользовательского интерфейса проекта.

Примерные функции: Translator и Cache , а примеры диалоговых окон: TransParams и CacheParams соответственно

<UI Id="MyWixUI_Mondo">
  <UIRef Id="WixUI_Mondo"/>
  <UIRef Id="WixUI_ErrorProgressText"/>

  <DialogRef Id="TransParams"/>
  <DialogRef Id="CacheParams"/>

  <!-- skip license dialog-->
  <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="SetupTypeDlg">1</Publish>
  <Publish Dialog="SetupTypeDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>

  <!-- Translator parameters -->
  <Publish Dialog="SetupTypeDlg" Control="CompleteButton" Event="NewDialog" Value="TransParams">1</Publish>

  <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="TransParams"><![CDATA[&Translator = "3"]]></Publish>
  <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="CacheParams"><![CDATA[&Translator <> "3" AND &Cache = "3"]]></Publish>

  <Publish Dialog="TransParams" Control="Back" Event="NewDialog" Value="SetupTypeDlg" Order="1">WixUI_InstallMode = "InstallComplete"</Publish>
  <Publish Dialog="TransParams" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="1">WixUI_InstallMode = "InstallCustom"</Publish>
  <Publish Dialog="TransParams" Control="Next" Event="NewDialog" Value="CacheParams" Order="1">WixUI_InstallMode = "InstallComplete"</Publish>
  <Publish Dialog="TransParams" Control="Next" Event="NewDialog" Value="CacheParams" Order="1"><![CDATA[WixUI_InstallMode = "InstallCustom" AND &Cache = "3"]]></Publish>
  <Publish Dialog="TransParams" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="2"><![CDATA[WixUI_InstallMode = "InstallCustom"]]></Publish>

  <!-- Cache parameters -->
  <Publish Dialog="CacheParams" Control="Back" Event="NewDialog" Value="SetupTypeDlg">WixUI_InstallMode = "InstallComplete"</Publish>
  <Publish Dialog="CacheParams" Control="Back" Event="NewDialog" Value="TransParams"><![CDATA[WixUI_InstallMode = "InstallCustom" AND &Translator = 3]]></Publish>
  <Publish Dialog="CacheParams" Control="Back" Event="NewDialog" Value="CustomizeDlg"><![CDATA[WixUI_InstallMode = "InstallCustom" AND &Translator <> 3]]></Publish>
  <Publish Dialog="CacheParams" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>

</UI>

Я пробовал несколько других комбинаций, и ни одна из них не помогла мне намного больше.
Заранее спасибо!

1 Ответ

0 голосов
/ 28 ноября 2011

Идентификаторы следующей кнопки в настраиваемом диалоговом окне должны соответствовать фактическим идентификаторам целевых диалогов.Измените «SymTransParams» на «TransParams», а «VolCacheParams» на «CacheParams».Кроме того, синтаксис «& Translator = 3» должен быть «! <[CDATA [& Translator = 3]]>»

Для случая, когда никакие функции не выбраны, вы можете отключить кнопку «Далее».В определении раздела / файла «CustomizeDlg» измените определение кнопки «Далее», чтобы она была отключена по умолчанию, и добавьте условие, чтобы включить ее, только если выбрана одна из функций.

    <UI>
  <Dialog Id="CustomizeDlg" ....
    <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)" Disabled="yes">
          <Condition Action="enable">!<CDATA[[&Translator = 3 OR &Cache = 3 ]]</Condition>

Вы могли бы улучшить это, отобразив динамическую метку, в которой пользователю предлагалось выбрать одну функцию перед продолжением / следующей.

...