Я пишу установщик, который устанавливает несколько модулей и требует, чтобы их можно было переключать по странам.
Я разделил его по функциям, в основной функции, и использовал препроцессор для перебора списка стран, определенных в переменной с именем 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.
У меня вопрос: как мне установить условие, чтобы это поведение работало? Это то, что оно означает?