2016-04-14 2 views
2

У меня есть Wix-установщик и добавил радио-кнопки Группа моей TargetFolder-Selection-Диалог:WiX - Характеристика-состояние не работает

<Property Id="INSTALLATION_TYPE" Secure="yes" Value="Server"/> 
    <RadioButtonGroup Property="INSTALLATION_TYPE"> 
    <RadioButton Height="17" Text="Client" Value="Client" Width="342" X="0" Y="0" /> 
    <RadioButton Height="17" Text="Server" Value="Server" Width="342" X="0" Y="18" /> 
    </RadioButtonGroup> 

При переключении между сервером и клиентом, после выхода печатается на от MSI-Logfile:

MSI (c) (04:B4) [17:17:56:295]: PROPERTY CHANGE: Modifying INSTALLATION_TYPE property. Its current value is 'Server'. Its new value: 'Client'. 

Моя особенность стол замки, как следовали:

<PropertyRef Id="INSTALLATION_TYPE"/> 
    <Feature Id="CommonFeature" Level="1" Title="Common Feature"> 
    <ComponentGroupRef Id="Common"/> 
    <ComponentGroupRef Id="RegistryKeys"/> 

    <Feature Id="FeatureServer" Title="Server" Level="2"> 
     <Condition Level="1"><![CDATA[INSTALLATION_TYPE="Server"]]></Condition> 
     <ComponentGroupRef Id="Server"/> 
     <ComponentGroupRef Id="AdminConsole"/> 
    </Feature> 

    <Feature Id="FeatureClient" Title="Client" Level="2"> 
     <Condition Level="1"><![CDATA[INSTALLATION_TYPE="Client"]]></Condition> 
     <ComponentGroupRef Id="Client"/> 
    </Feature> 
    </Feature> 

Но особенность клиента и Server никогда не устанавливаются при выборе RadioButton «Клиент». Сервер функций всегда установлен. В файле журнала указано следующее:

MSI (s) (DC:5C) [17:18:35:750]: Feature: FeatureServer; Installed: Absent; Request: Null; Action: Null 
MSI (s) (DC:5C) [17:18:35:753]: Feature: FeatureClient; Installed: Absent; Request: Null; Action: Null 
MSI (s) (DC:5C) [17:18:35:755]: Feature: CommonFeature; Installed: Absent; Request: Local; Action: Local 

Что я делаю неправильно?

ответ

0

Попробуйте определить INSTALLATION_TYPE в разделе продукта < продукта вашего установщика.

Я думаю, что происходит то, что вы определяете свойство INSTALLATION_TYPE на клиентской стороне (UI) установки, даже если оно отмечено безопасным.

В небольших фрагментах бревна мы можем увидеть

MSI (с)

Это указывает на эту часть лесозаготовок происходит в течение части пользовательского интерфейса установки. Принимая во внимание,

MSI (ы)

указывает на то, что регистрация происходит во время сервера (повышенные) части установки.

В конце файла установки вы, вероятно, есть куча строк, которые начинаются как этот

собственности (S)

Все свойства с (S) то, что надземная часть от установки имеет доступ. Я собираюсь сделать ставку. INSTALLATION_TYPE не указан в свойствах (S) и что вы только технически определили его для части пользовательского интерфейса (клиента). Это объясняет, почему ни один из ваших функций клиента или сервера не устанавливается.

Также при использовании условно установленных функций, которые «Не устанавливаются» по умолчанию, вам необходимо добавить «OR Installed» к условию включения их.

Когда я был автором некоторых инсталляторов, у меня были функции, которые были отключены по умолчанию, и если я их установил, возникли проблемы во время удаления или обновления (я не помню, какие), из-за которых установщик не смог полностью полностью удалить , У этого были машины в странных состояниях, где установщик не работал. Добавление условия «OR Installed» к условию, позволяющему условию, устранило эту проблему для меня.

Смежные вопросы