Re[2]: WIX:установка альтернативных компонент из одного паке
От: v0lev  
Дата: 09.01.09 08:56
Оценка:
Здравствуйте, WPooh, Вы писали:

WP>1) На диалоге выбора с чекбоксиками, выбираются Features а не Components.


Все правильно, именно Features я и назвал компонентами — моя ошибка в терминологии.

Вот что имеем:

<Directory ...>
<Component Id="WstComponent" ... >
<File Id="File1_1" ... />
<File Id="File1_2" ... />
</Component>
</Directory>
<Directory ...>
<Component Id="SrvComponent" ... >
<File Id="File2_1" ... />
<File Id="File2_2" ... />
...
</Component>
</Directory>

Как видно из кода — две различные компоненты: для установки на сервер и на рабочую станцию. Далее прописываем фичи — для каждой фичи свой компонент:

<Feature Id="ServerInstall" Description="SRVR Components." Level="1" Title="SRVR" >
<ComponentRef Id="SrvComponent" />
</Feature>
<Feature Id="WStationInstall" Description="WS Components." Level="1" Title="WS" >
<ComponentRef Id="WstComponent" />
</Feature>

Только мое предложение не CheckBox, а RadioButtonGroup, которая лежит на форме фыбора типа инсталляции:

<UI>
<RadioButtonGroup Property="TpInstall">
<RadioButton Text="To server" Value="Server" ... />
<RadioButton Text="To workstation" Value="WStation" ... />
</RadioButtonGroup>

<Dialog Id="SelectTpInstall" ...>
<Control Id="ButtonsTpInstall" Type="RadioButtonGroup" Property="TpInstall" />
</Dialog>
</UI>

Как видно их кода, по соответствующей кнопке устанавливается проперть TpInstall.

Так вот хотелось бы в зависимости от установленного значения TpInstall (Server или WStation) заблокировать соответствующую фичу (если установлено Server, то заблокировать фичу "WStationInstall", и наоборот).

А вот как это сделать? Пробовал так:

<Feature Id="ServerInstall" Description="SRVR Components." Level="1" Title="SRVR" >
<Condition Level="2">TpInstall <> "Server"</Condition>
<ComponentRef Id="SrvComponent" />
</Feature>
<Feature Id="WStationInstall" Description="WS Components." Level="1" Title="WS" >
<Condition Level="2">TpInstall <> "WStation"</Condition>
<ComponentRef Id="WstComponent" />
</Feature>

Не получилось

Что не так? Если можно, то сразу код.
Заранее благодарю.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.