Я обнаружил, что это решает мою проблему.Чтобы сделать так, как я планировал, мне нужно было создать флажок для каждой отдельной функции.
<Control Id="FeatureX" Type="CheckBox" X="191" Y="50" Width="140" Height="17"
Property="FEATUREX_CHECKED" CheckBoxValue="myValue" Text="Install feature 1" />
<Control Id="FeatureY" Type="CheckBox" X="191" Y="67" Width="140" Height="17"
Property="FEATUREY_CHECKED" CheckBoxValue="myValue" Text="Install feature 1" />
<Control Id="FeatureZ" Type="CheckBox" X="191" Y="84" Width="140" Height="17"
Property="FEATUREZ_CHECKED" CheckBoxValue="myValue" Text="Install feature 1" />
Теперь, как только я это сделал, я добавил соответствующую публикацию к каждому и сделал условие, которое сделало это так, что только если флажок установлен, эта функция будет установлена.Примерно так:
<Control Id="Next" Type="PushButton" Text="Next" X="254" Y="243" Height="17" Width="56">
<Publish Event="Remove" Value="ALL" Order="1">1</Publish>
<Publish Event="AddLocal" Value="FeatureX" Order="2">
<![CDATA[FEATUREX_CHECKED]]>
</Publish>
</Control>
ПРИМЕЧАНИЕ:
Удалить используется для отмены выбора всего из установленного (мне стало известно, что после вызова пользовательского интерфейса этослишком поздно, чтобы изменить уровни функций).
Затем проверяется каждая функция, чтобы видеть, был ли выбран «соответствующий флажок», и если это так, добавляет его в свойство «AddLocal».AddLocal выглядел бы так, если бы вы смотрели на него:
ADDLOCAL=FeatureX,FeatureY,FeatureZ...
Последнее, что мне нужно было сделать, чтобы заставить это работать, было слишком проверить в моем main.wxs, чтобы убедиться, что FeatureID используется вфлажки совпадают с используемым ComponentGroupRefID:
<ComponentGroupRef Id="FeatureX"/>
Итак, вот оно ... Я еще раз благодарю всех за помощь в этом.Если кто-то читает что-то смущенное, не стесняйтесь, напишите мне, и я сделаю все возможное, чтобы объяснить немного подробнее.