2013-10-15 6 views
1

У меня есть некоторые функции, которые должны быть взаимно эксклюзивными, но и эти фьючерсы отображаются только в том случае, если установлено определенное программное обеспечение. Теперь я хочу разрешить пользователю выбрать один из этих функций для установки. Любые идеи? Я не могу использовать radioobuttons, потому что функции основаны на условии (если какое-то программное обеспечение установлено или нет, и мы не можем отключить только некоторые радиообъекты ...) Также я пытался сделать это в будущем выборе ... Я знаю, как разрешить пользователю выбрать только одну функцию, (просто вызывая costfinalize действие после каждого изменения на featureselection дерева), но затем, если пользователь нажимает следующий, а затем обратно ... все функции отключены ...Как выбрать только одну функцию в wix?

 <Feature Id='FM10' AllowAdvertise="no" TypicalDefault="install" ConfigurableDirectory="INSTALLDIR" Level='5000' Title="Frame Maker 10 files" Description="Frame Maker 10 files."> 
      <ComponentRef Id='FAMSMainFM10DLL_component' /> 
      <Condition Level="0">NOT FM10HOME AND NOT REMOVE</Condition> 
      <Condition Level="5000"><![CDATA[(&FM72 = 3 OR &FM72 = 4 OR &FM71 = 3 OR &FM71 = 4 OR &FM70 = 3 OR &FM70 = 4 OR &FM8 = 3 OR &FM8 = 4) AND FM10HOME]]></Condition> 

     </Feature> 

     <Feature Id='FM8' AllowAdvertise="no" TypicalDefault="install" ConfigurableDirectory="INSTALLDIR" Level='5000' Title="Frame Maker 8 files" Description="Frame Maker 8 files."> 
      <ComponentRef Id='FAMSMainFM8DLL_component' /> 
      <Condition Level="0">NOT FM80HOME AND NOT REMOVE</Condition> 
      <Condition Level="5001"><![CDATA[(&FM72 = 3 OR &FM72 = 4 OR &FM71 = 3 OR &FM71 = 4 OR &FM70 = 3 OR &FM70 = 4 OR &FM10 = 3 OR &FM10 = 4) AND FM80HOME]]></Condition> 
     </Feature> 

     <Feature Id='FM70' AllowAdvertise="no" TypicalDefault="install" ConfigurableDirectory="INSTALLDIR" Level='5000' Title="Frame Maker 7 files" Description="Frame Maker 7.0 files."> 
      <ComponentRef Id='FAMSMainFM7DLL_component' /> 
      <Condition Level="0">NOT FM70HOME AND NOT FM71HOME AND NOT FM72HOME AND NOT REMOVE</Condition> 
      <Condition Level="5001"><![CDATA[(&FM71 = 3 OR &FM71 = 4 OR &FM72 = 3 OR &FM72 = 4 OR &FM10 = 3 OR &FM10 = 4 OR &FM8 = 3 OR &FM8 = 4) AND FM70HOME]]></Condition> 
     </Feature> 

     <Feature Id='FM71' AllowAdvertise="no" TypicalDefault="install" ConfigurableDirectory="INSTALLDIR" Level='5000' Title="Frame Maker 7 files" Description="Frame Maker 7.1 files."> 
      <ComponentRef Id='FAMSMainFM7DLL_component' /> 
      <Condition Level="0">NOT FM70HOME AND NOT FM71HOME AND NOT FM72HOME AND NOT REMOVE</Condition> 
      <Condition Level="5001"><![CDATA[(&FM10 = 3 OR &FM10 = 4 OR &FM8 = 3 OR &FM8 = 4) AND FM71HOME]]></Condition> 
     </Feature> 

     <Feature Id='FM72' AllowAdvertise="no" TypicalDefault="install" ConfigurableDirectory="INSTALLDIR" Level='5000' Title="Frame Maker 7 files" Description="Frame Maker 7.2 files."> 
      <ComponentRef Id='FAMSMainFM7DLL_component' /> 
      <Condition Level="0">NOT FM70HOME AND NOT FM71HOME AND NOT FM72HOME AND NOT REMOVE</Condition> 
      <Condition Level="5001"><![CDATA[(&FM70 = 3 OR &FM70 = 4 OR &FM71 = 3 OR &FM71 = 4 OR &FM10 = 3 OR &FM10 = 4 OR &FM8 = 3 OR &FM8 = 4) AND FM72HOME]]></Condition> 
     </Feature> 

ответ

0

, наконец, я решил это:

 <Feature Id='FM10' AllowAdvertise="no" TypicalDefault="install" ConfigurableDirectory="INSTALLDIR" Level='5000' Title="Frame Maker 10 files" Description="Frame Maker 10 files."> 
      <ComponentRef Id='FAMSMainFM10DLL_component' /> 
      <Condition Level="5000">FM10T = "LOCKED" AND FM10HOME</Condition> 
      <Condition Level="1">FM10T = "UNLOCKED" AND FM10HOME</Condition> 
      <Condition Level="0">NOT FM10HOME AND NOT REMOVE</Condition> 
     </Feature> 

     <Feature Id='FM8' AllowAdvertise="no" TypicalDefault="install" ConfigurableDirectory="INSTALLDIR" Level='5000' Title="Frame Maker 8 files" Description="Frame Maker 8 files."> 
      <ComponentRef Id='FAMSMainFM8DLL_component' /> 
      <Condition Level="5001">FM8T = "LOCKED" AND FM80HOME</Condition> 
      <Condition Level="1">FM8T = "UNLOCKED" AND FM80HOME</Condition> 
      <Condition Level="0">NOT FM80HOME AND NOT REMOVE</Condition> 
     </Feature> 

     <Feature Id='FM70' AllowAdvertise="no" TypicalDefault="install" ConfigurableDirectory="INSTALLDIR" Level='5000' Title="Frame Maker 7.0 files" Description="Frame Maker 7.0 files."> 
      <ComponentRef Id='FAMSMainFM7DLL_component' /> 
      <Condition Level="5001">FM7T = "LOCKED" AND FM70HOME</Condition> 
      <Condition Level="1">FM70T = "UNLOCKED" AND FM70HOME</Condition> 
      <Condition Level="0">NOT FM70HOME AND NOT REMOVE</Condition> 
     </Feature> 

     <Feature Id='FM71' AllowAdvertise="no" TypicalDefault="install" ConfigurableDirectory="INSTALLDIR" Level='5000' Title="Frame Maker 7.1 files" Description="Frame Maker 7.1 files."> 
      <ComponentRef Id='FAMSMainFM7DLL_component' /> 
      <Condition Level="5001">FM71T = "LOCKED" AND FM71HOME</Condition> 
      <Condition Level="1">FM71T = "UNLOCKED" AND FM71HOME</Condition> 
      <Condition Level="0">NOT FM71HOME AND NOT REMOVE</Condition> 
     </Feature> 

     <Feature Id='FM72' AllowAdvertise="no" TypicalDefault="install" ConfigurableDirectory="INSTALLDIR" Level='5000' Title="Frame Maker 7.2 files" Description="Frame Maker 7.2 files."> 
      <ComponentRef Id='FAMSMainFM7DLL_component' /> 
      <Condition Level="5001">FM72T = "LOCKED" AND FM72HOME</Condition> 
      <Condition Level="1">FM72T = "UNLOCKED" AND FM72HOME</Condition> 
      <Condition Level="0">NOT FM72HOME AND NOT REMOVE</Condition> 
     </Feature> 

и:

 <Control Id="Tree" Type="SelectionTree" X="25" Y="85" Width="175" Height="115" Property="_BrowseProperty" Sunken="yes" TabSkip="no" Text="!(loc.CustomizeDlgTree)" > 
      <Publish Property="FM70T" Value="UNLOCKED">MsiSelectionTreeSelectedFeature = "FM70" AND (MsiSelectionTreeSelectedAction = 3 OR MsiSelectionTreeSelectedAction = 4)</Publish> 
      <Publish Property="FM71T" Value="UNLOCKED">MsiSelectionTreeSelectedFeature = "FM71" AND (MsiSelectionTreeSelectedAction = 3 OR MsiSelectionTreeSelectedAction = 4)</Publish> 
      <Publish Property="FM72T" Value="UNLOCKED">MsiSelectionTreeSelectedFeature = "FM72" AND (MsiSelectionTreeSelectedAction = 3 OR MsiSelectionTreeSelectedAction = 4)</Publish> 
      <Publish Property="FM8T" Value="UNLOCKED">MsiSelectionTreeSelectedFeature = "FM8" AND (MsiSelectionTreeSelectedAction = 3 OR MsiSelectionTreeSelectedAction = 4)</Publish> 
      <Publish Property="FM10T" Value="UNLOCKED">MsiSelectionTreeSelectedFeature = "FM10" AND (MsiSelectionTreeSelectedAction = 3 OR MsiSelectionTreeSelectedAction = 4)</Publish> 

      <Publish Property="FM70T" Value="LOCKED">NOT MsiSelectionTreeSelectedFeature = "FM70" AND NOT (MsiSelectionTreeSelectedAction = 3 OR MsiSelectionTreeSelectedAction = 4)</Publish> 
      <Publish Property="FM71T" Value="LOCKED">NOT MsiSelectionTreeSelectedFeature = "FM71" AND NOT (MsiSelectionTreeSelectedAction = 3 OR MsiSelectionTreeSelectedAction = 4)</Publish> 
      <Publish Property="FM72T" Value="LOCKED">NOT MsiSelectionTreeSelectedFeature = "FM72" AND NOT (MsiSelectionTreeSelectedAction = 3 OR MsiSelectionTreeSelectedAction = 4)</Publish> 
      <Publish Property="FM8T" Value="LOCKED">NOT MsiSelectionTreeSelectedFeature = "FM8" AND NOT (MsiSelectionTreeSelectedAction = 3 OR MsiSelectionTreeSelectedAction = 4)</Publish> 
      <Publish Property="FM10T" Value="LOCKED">NOT MsiSelectionTreeSelectedFeature = "FM10" AND NOT (MsiSelectionTreeSelectedAction = 3 OR MsiSelectionTreeSelectedAction = 4)</Publish> 
      <Publish Event="DoAction" Value="CostFinalize">1</Publish> 
     </Control> 
Смежные вопросы