Как сделать условное переключение по SelectionTree
От: zjihorka  
Дата: 18.08.11 18:08
Оценка:
Здравствуйте.
Недавно заказчик потребовал изготовить для него инсталлятор.
Я чуть-чуть пошарил в инете и выбрал Wix.

Проблема в следующем:

Пакет установки должен предоставлять
возможность настройки параметров базы
данных после того, как пользователь выберет её установку с помощью
контрола SelectionTree.

Для этого заказчик просит сделать ещё одно диалоговое окно с настройками базы данных,
которое бы появлялась только при выборе БД,
и пропускалась в противном случае.

привожу фрагменты кода, которые пояснят выше сказанное

<Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="CompletionDlg">1</Publish>
<Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="DbTuningDlg" order="1">DBTUNING</Publish>

...

<!--Диалог, в котором требуется ввести параметры установки базы данных-->
<Publish Dialog="DbTuningDlg" Control="Next" Event="NewDialog" Value="CompletionDlg">1</Publish>

...

<Publish Dialog="CompletionDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>

Предположительно, свойство DBTUNING можно установить с помощью события SelectionDescription, которое публикует
SelectionTree, но реализовать это я не смог.


Подскажите, пожалуйста, как организовать условие выбора диалогового окна.
Re: Как сделать условное переключение по SelectionTree
От: 6lackbird Россия  
Дата: 18.08.11 21:43
Оценка:
Здравствуйте, zjihorka, Вы писали:

Z>привожу фрагменты кода, которые пояснят выше сказанное


Z><Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="CompletionDlg">1</Publish>

Z><Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="DbTuningDlg" order="1">DBTUNING</Publish>

Z>...


Z><!--Диалог, в котором требуется ввести параметры установки базы данных-->

Z><Publish Dialog="DbTuningDlg" Control="Next" Event="NewDialog" Value="CompletionDlg">1</Publish>

Z>...


Z><Publish Dialog="CompletionDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>


Z>Предположительно, свойство DBTUNING можно установить с помощью события SelectionDescription, которое публикует

Z>SelectionTree, но реализовать это я не смог.


Надо проверять не значение свойства, а выбор компонента или фичи, которая описывает действия установки БД
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
"Мы будем уничтожать свое ядерное оружие вместе с Америкой" (c) Б. Ельцин
Re[2]: Как сделать условное переключение по SelectionTree
От: Аноним  
Дата: 21.08.11 15:57
Оценка:
Здравствуйте, 6lackbird, Вы писали:


6>Надо проверять не значение свойства, а выбор компонента или фичи, которая описывает действия установки БД


А вы не могли бы привести пример, каким образом это можно сделать.
Или, хотя бы, укажить ссылку на страницу, где про это можно прочитать.
Заранее благодарен.
Re[3]: Как сделать условное переключение по SelectionTree
От: 6lackbird Россия  
Дата: 22.08.11 08:11
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, 6lackbird, Вы писали:



6>>Надо проверять не значение свойства, а выбор компонента или фичи, которая описывает действия установки БД


А>А вы не могли бы привести пример, каким образом это можно сделать.

А>Или, хотя бы, укажить ссылку на страницу, где про это можно прочитать.
А>Заранее благодарен.

Добавляешь feature в проект, которая будет отвечать за создание БД. Для нее описываешь component, предствляющий скрипт бд

<Feature Id="DatabaseFeature" Title="Установить БД" Level="1000">
   <ComponentRef Id="Database"/>
</Feature>




<util:User Id="sqlUser" Name="[DATABASE_USERNAME]" Password="[DATABASE_PASSWORD]"/>

<Component Id="Database" Guid="тут guid">

   <!-- WinAuth if user attribute is abcense -->
   <sql:SqlDatabase Id="database" Server="[DATABASE_INSTANCE_HOST]" Database="[DATABASE_NAME]"
      Instance="[DATABASE_INSTANCE_NAME]" CreateOnInstall="yes" DropOnUninstall="yes" ContinueOnError="no" User="sqlUser">


   <sql:SqlScript Id="dbScheme" BinaryKey="dbScheme"
      ExecuteOnInstall="yes" Sequence="100"/>

   </sql:SqlDatabase>

</Component>

<!-- Файл, содержащий sql скрипт для создания БД -->
<Binary Id="dbScheme"
   SourceFile="database/database_structure.sql"/>


Проверка перехода на диалог при выборе фичи осуществляется вот так
<Publish Dialog="SelectDlg" Control="Next" Event="NewDialog" Value="DatabaseDlg">
   <![CDATA[&DatabaseFeature = 3]]>
</Publish>



Вот тут неплохая подборка статей по wix, которая в свое время помогла в изучении

msdn
Conditional Statement Syntax
"Мы будем уничтожать свое ядерное оружие вместе с Америкой" (c) Б. Ельцин
Re[4]: Как сделать условное переключение по SelectionTree
От: zjihorka  
Дата: 22.08.11 17:56
Оценка:
Огромное вам спасибо. Вы меня, просто, спасли.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.