Атрибут уровня условия Wix Toolset не работает должным образом - PullRequest
0 голосов
/ 21 июня 2019

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

<?define CountryCodes="AR;BR;GB;US" ?>

    <Feature Id="Complete" Title="$(var.SkuDescription)">
      <?foreach country in $(var.CountryCodes)?>
      <Feature Id="WindowsServicesFeature_$(var.country)" Title="$(var.WindowsServicesDescription) $(var.country)" Level="1000">
        <Condition Level="1"><![CDATA[country = "AR"]]></Condition>
        <ComponentGroupRef Id="ServicesComponents_$(var.country)" />
      </Feature>
      <Feature Id="WebUIDescription_$(var.country)" Title="$(var.WebUIDescription) $(var.country)" Level="1000">
        <ComponentGroupRef Id="WebUIComponents_$(var.country)" />
      </Feature>
      <Feature Id="SOAPServicesDescription_$(var.country)" Title="$(var.SOAPServicesDescription) $(var.country)" Level="1000">
        <ComponentGroupRef Id="SOAPServicesComponents_$(var.country)" />
      </Feature>
      <?endforeach?>
    </Feature>

Это работает, но сейчас мне нужно установить уровень по умолчанию для ServicesComponents_AR равным 1 вместо 1000, чтобы при обычной установке работала только установка служб Windows для Аргентины.
Я нашел здесь Я должен быть в состоянии сделать это, используя условие с атрибутом уровня, который заявляет

Используется только в элементах Feature и является обязательным. Позволяет изменять уровень функции на основе результата этого условия.

Чтобы проверить это, выберите Полная установка, и, к удивлению, ничего не было выбрано для установки, что означает, что уровень все еще равен 1000.

У меня вопрос: как мне установить условие, чтобы это поведение работало? Это то, что оно означает?

...