Пользовательский интерфейс Wix для установки базы данных SQL

Это мой самый первый проект wix. Я скачал wix 3.6 rc. Мой проект установки включает в себя 2 проекта WCF и 1 Silverlight. Все работает нормально с интерфейсом 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, имени базы данных, имени пользователя и пароля, если имя пользователя и пароль не указаны, используйте пользователя Windows.

Просто чтобы посмотреть, как добавить пользовательский интерфейс, я попробовал следующее: но он отображает пользовательский интерфейс сразу. Но я хочу, чтобы это было показано специально для установки базы данных 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, приведенная выше ссылка на codeproject помогла мне понять. Особенно та часть, которая объясняет создание пользовательского интерфейса (MyWebUI.wxs в этой статье), спасла жизнь.

 16 нояб. 2012 г., 20:35
Спасибо за ссылку. Хотя статья довольно устарела, я смог многому научиться. Я понял, что мне не следует копировать исходный файл в моем настраиваемом наборе диалогов, а просто ссылаться на стандартный диалог и вставлять свои настраиваемые диалоговые окна, публикуя (переопределяя) действия в Next / Back:codeproject.com/Articles/115036/…

наиболее подходящий для вашего установщика. Тогда вы можете настроить его соответственно. Предположим, вы хотите настроить набор диалогов WixUI_Advanced:

Download the WiX source code Navigate to the source code for the UI extension located in src\ext\UIExtension\wixlib. Copy and rename the file *WixUI_Advanced.wxs* to something different such as *WixUI_Advanced_Custom.wxs*. Open the .wxs file and be sure to rename the UI Id to <UI Id="WixUI_Advanced_Custom">. Add *WixUI_Advanced_Custom.wxs* to your setup project.

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

 24 сент. 2012 г., 14:55
@ AndrasBal & # xE1; zsLajtha В чем ошибки?
 30 сент. 2012 г., 13:00
Спасибо, я тоже так думал. Я взял & lt; UI & gt; добавьте элемент и измените идентификатор: & lt; UI Id = & quot; WixUI_Advanced_Custom & quot; & gt ;. Но это не помогло, в этот момент я получил все ошибки с жалобами на ссылочные компоненты, имеющие избыточные идентификаторы, хотя я не копировал эти элементы.
 24 сент. 2012 г., 18:11
Спасибо за помощь. Я получил много ошибок, как показано ниже: LGHT0091: Дубликат символа 'ControlEvent: WelcomeDlg / Next / NewDialog / VerifyReadyDlg / Установлено AND PATCH & apos; найденный. Обычно это означает, что идентификатор дублируется. Убедитесь, что все ваши идентификаторы данного типа (File, Component, Feature) являются уникальными.
 24 сент. 2012 г., 11:08
Привет! У меня та же проблема, и я нашел ваше решение во многих учебных пособиях. Я просто не могу заставить это работать. Я загружаю исходный код, нахожу файл для использования, делаю его копию, добавляю его в папку, в которой я работаю, и затем пытаюсь использовать инструменты командной строки для создания MSI-файла. Я использую light.exe с -ext WixUIExtension, и это дает мне ошибки LGHT0091. Что я делаю неправильно?
 28 сент. 2012 г., 06:04
Если вы только что скопировали файл, вам нужно изменить идентификатор. Обычно вы берете файл, который управляет всем набором диалогов WiXUI, и переименовываете только этот файл (включая Id). Затем, если вам нужно добавить файл, вы можете скопировать и переименовать существующий файл в качестве примера (не забудьте переименовать идентификатор). Вам не нужно идти и переименовывать каждый файл в наборе, потому что ваш основной файл .wxs (который вы переименовали) будет ссылаться на все стандартные диалоговые окна. Я надеюсь, что я объяснил, что все в порядке.

Ваш ответ на вопрос