2012-06-04 3 views
0

Это мой самый первый проект wix. Я загрузил wix 3.6 rc. Мой проект по установке включает в себя 2 проекта wcf и 1 silverlight. Все отлично работает с пользовательским интерфейсом Wix по умолчанию. Но теперь мне нужно добавить к нему базу данных sql. Он отлично работает со значениями по умолчанию, как показано ниже:Wix пользовательский интерфейс для установки базы данных SQL

    <Component Id='SqlComponent' Guid='8B72C159-1477-4A58-AFAE-E94D756BFFA6'> 
        <CreateFolder/> 
        <sql:SqlDatabase Id='SqlDatabase' Database='master' Server='.' 
         CreateOnInstall='yes' DropOnUninstall='no' ContinueOnError='yes'> 
         <sql:SqlScript Id='CreateTable' BinaryKey='CreateTable' ExecuteOnInstall='yes' /> 
         <sql:SqlScript Id='CreateTable1' BinaryKey='CreateTable1' ExecuteOnInstall='yes' /> 
        </sql:SqlDatabase> 
        </Component> 

Но мне нужно представить интерфейс пользователя для SQL путь к базе данных, имя базы данных, имя пользователя и пароль, если пользователь и пароль не задан, то использовать пользователя окна.

Для того чтобы увидеть, как добавить свой заказ ui, я попробовал следующее: , но он отображает пользовательский ui сразу. Но я хочу, чтобы он показывался специально для установки базы данных sql.

<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes"> 
    <Text>Ready to Install</Text> 
</Control> 

<Control Id="Install" Type="PushButton" X="304" Y="243" Width="56" Height="17" 
    Default="yes" Text="Install"> 
    <Publish Event="EndDialog" Value="Return" /> 
</Control> 

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

ответ

2

Наконец я нашел сенсационную статью на WiX здесь How to add custom UI

После долгой борьбы, чтобы понять, как Wix работы, выше ссылка на CodeProject помогла мне понять. Особенно важной частью, объясняющей создание пользовательского интерфейса (MyWebUI.wxs в этой статье), была спасательная жизнь.

+1

Спасибо за ссылку. Несмотря на то, что статья довольно устарела, мне удалось многому научиться. Я понял, что мне не следует копировать исходный файл в свой настраиваемый набор диалогов, но просто ссылайтесь на стандартный диалог и вводите мои пользовательские диалоги, публикуя (переопределяя) действия в Next/Back: http://www.codeproject.com/Articles./115036/Создание-WIX-установщика для-ASP-NET-веб-приложений # H45 – VikVik

3

Прочитайте расширение Wi-Fi UI в формате .chm. Выберите набор диалогов, наиболее подходящий для вашего установщика. Затем вы можете настроить его соответствующим образом. Давайте предположим, что вы хотите настроить диалоговый набор WixUI_Advanced:

  • Загрузите WiX source code
  • Перейдите к исходному коду для расширения пользовательского интерфейса, расположенное в src\ext\UIExtension\wixlib.
  • Скопируйте и переименуйте файл * WixUI_Advanced.wxs * на что-то другое, например * WixUI_Advanced_Custom.wxs *.
  • Откройте файл .wxs и обязательно переименуйте идентификатор пользователя в <UI Id="WixUI_Advanced_Custom">.
  • Добавить * WixUI_Advanced_Custom.wxs * в ваш проект установки.

Теперь вы можете ссылаться на свой собственный диалоговый набор так же, как вы ссылались бы на другие наборы диалогов в расширении интерфейса. Но пользовательский интерфейс не совсем настроен, он просто обеспечивает те же функции, что и набор настроек WixUI_Advanced. Чтобы добавить новое диалоговое окно, вам нужно создать новый .wxs, используя источник wix в качестве примера. Посмотрите на любой из диалогов в src\ext\UIExtension\wixlib для получения справки. Затем укажите свое диалоговое окно в * WixUI_Advanced_Custom.wxs *, добавив и изменив элементы <Publish>, чтобы определить, когда будет показано ваше диалоговое окно.

+0

Привет! У меня такая же проблема, и я нашел ваше решение во многих учебниках. Я просто не могу заставить его работать. Я загружаю исходный код, я нахожу, что файл используется, делаю копию, добавляю его в папку, в которой я работаю, и пытаюсь использовать инструменты командной строки для создания файла .msi. Я использую свет.exe с -ext WixUIExtension, и это дает мне ошибки LGHT0091. Что я делаю не так? –

+0

@ AndrasBalázsLajtha Каковы ошибки? – BryanJ

+0

Спасибо за помощь. У меня появилось много ошибок, как показано ниже: LGHT0091: найден дубликат символа «ControlEvent: WelcomeDlg/Next/NewDialog/VerifyReadyDlg/Installed AND PATCH». Обычно это означает, что идентификатор дублируется. Убедитесь, что все ваши идентификаторы определенного типа (File, Component, Feature) уникальны. –

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