Обновление Wix: предварительный выбор функций - PullRequest
2 голосов
/ 24 февраля 2010

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

Однако эти значения по умолчанию сохраняются при запуске обновления. Мы бы хотели, чтобы установщик запомнил, какие функции были установлены, и включил их в дерево компонентов для обновления. Все остальные функции должны быть отключены.

У нас был этот код, который, казалось, работал, но на самом деле это не так:

<Feature Id="MainFeature" Level="1" ConfigurableDirectory="INSTALLDIR" Display="expand">
    <Feature Id="Feature1" Level="1" InstallDefault="local" AllowAdvertise="no">
        <ComponentGroupRef Id="Feature1ComponentGroup" />
        <Condition Level="3">(PROJECTUPGRADE AND NOT !Feature1=2)</Condition>
    </Feature>            
    <Feature Id="Feature2" Level="3" InstallDefault="local" AllowAdvertise="no">
        <ComponentGroupRef Id="Feature2ComponentGroup" />
        <Condition Level="1">(PROJECTUPGRADE AND !Feature2=2)</Condition>
    </Feature>
</Feature>

1 Ответ

2 голосов
/ 25 февраля 2010

Ах, кажется, я искал не в том месте. В теге UpdgradeVersion есть атрибут « MigrateFeatures », который определяет это:

<Upgrade Id="$(var.UpgradeCode)">
    <UpgradeVersion Minimum="$(var.ProductVersion)" IncludeMinimum="yes" OnlyDetect="yes" Property="PROJECTDOWNGRADE" />
    <UpgradeVersion Maximum="$(var.ProductVersion)" IncludeMaximum="no" Property="PROJECTUPGRADE" MigrateFeatures="yes" />
</Upgrade>
...