2011-11-24 4 views
1

하나의 기능과 해당 구성 대화 상자가있는 설치 프로젝트를 업데이트하려고합니다.
이제 설정 대화 상자가있는 추가 기능을 설정 프로젝트에 추가해야합니다. 사용자가 feature1 디스플레이 feature1의 구성 대화 상자를 선택하면 사용자가 feature2 디스플레이 feature2의 구성 대화 상자를 선택하고 사용자가 두 기능을 모두 선택하면 feature1은 feature2의 설정 대화 상자를 순서대로 사용합니다. 사용자가 아무 것도 선택하지 않으면 설치 프로그램에 설치할 기능이 없으므로 설치 프로그램을 계속 진행할 수 없습니다. 그 마지막 규칙은 아직 여기 프로젝트에 반영되지 않았습니다. 이것은 프로젝트의 마지막 UI 스 니펫입니다.Wix에서 두 개의 독립적 인 필수 기능에 대한 두 개의 구성 대화 상자를 추가하는 방법

샘플 특징 번역기와의 캐시하고 샘플 대화 상자가 지고 transParamsCacheParams 각각

<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> 

내가 여러 가지 다른 조합을 시도하고 그들 중 누구도 나에게 훨씬 더 도움이되지 않습니다.
미리 감사드립니다.

답변

0

사용자 정의 대화 상자의 다음 버튼에 대한 ID는 대상 대화 상자의 실제 ID와 일치해야합니다. "SymTransParams"를 "TransParams"로 변경하고 "VolCacheParams"를 "CacheParams"로 변경하십시오. 또한, 구문 "& 번역기 = 3" "< [CDATA [& 번역기 = 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> 

사용자는 다음/계속하기 전에 하나의 기능을 선택하도록 지시 된 동적 레이블을 표시하여이 기능을 향상시킬 수 있습니다.

+0

감사합니다. @jdh, 그러나 제안을 시도해 보겠습니다.하지만 실제 샘플이 정확하도록 샘플에서 이름이 변경되었으므로 샘플을 편집하여 지적한대로 수정했습니다. 가장 필요한 것은 올바른 대화 상자 시퀀스이며 제대로 작동하지 않을 수 있습니다. 그 중 하나를 선택하면 올바르게 작동하지만 선택하면 두 개의 구성 대화 상자가 나타납니다. 나는 그것을 이미 고쳤지만, 선택한 설치 유형이 관습 일 때 완전한 구성으로 해결했습니다. 어쨌든 도와 줘서 고마워, 고마워. –

관련 문제