Добавление первого настраиваемого диалогового окна в WIX в среде VisualStudio

Я использую Visual Studio для создания моего файла wix. Пока у меня есть один файл Product.wxs, и он работает для простой установки.

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

http://blog.torresdal.net/2008/10/24/WiXAndDTFUsingACustomActionToListAvailableWebSitesOnIIS.aspx и http://www.merlinia.com/mdt/WiXTutorial2.msl

Я скачал исходный код и вижу 35 *.wxs файл в этом каталоге wix35-sources.zip\src\ext\UIExtension\wixlib

Это где я начинаю заблудиться.

  1. Нужно ли мне копировать некоторые (только те, которые я хочу изменить) или все эти файлы в мой проект Visual Studio. До сих пор я не работал ни с одним из этих исходных файлов.

  2. Как мой Product.wxs знает, как использовать эти файлы? Сначала он смотрит на локальный каталог? Или мне нужно перестроить некоторые модули C#?

Я включил эти строки в мой Product.wxs, и он дал мне пользовательский интерфейс во время выполнения:

    <UIRef Id="WixUI_Mondo" />
    <UIRef Id="WixUI_ErrorProgressText" />

Спасибо,

Нил

1 ответ

Решение

Нужно ли мне копировать некоторые (только те, которые я хочу изменить) или все эти файлы в мой проект VisualStudio. До сих пор я не работал ни с одним из этих исходных файлов.

Поскольку вы уже используете WixUI_MondoЯ полагаю, вы хотите настроить этот интерфейс. разместить WixUI_Mondo.wxs в исходниках wix, и скопируйте это в свой проект Visual Studio. Переименуйте файл в WixUI_MyCustomUI.wxs и измените атрибут UI Id внутри файла на Id="WixUI_MyCustomUI", Вам не нужно копировать другие файлы; диалоги, на которые есть ссылки в скопированной последовательности пользовательского интерфейса, компилируются в инструменты wix как ресурсы, поэтому wix "знает" эти диалоги по имени.

В файле product.wxs измените ссылку на пользовательский интерфейс на <UIRef Id="WixUI_MyCustomUI" />, Если вы сейчас восстановите настройки, пользовательский интерфейс все равно должен выглядеть так же, как WixUI_Mondo поскольку мы еще ничего не настроили.

Если это сработало, вы, вероятно, захотите настроить или добавить диалог. Опять же, вы можете начать с существующего диалога, скопировав его из исходников wix. Вам также придется редактировать WixUI_MyCustomUI.wxs файл, чтобы он использовал ваш новый диалог. Взгляните на этот другой ответ, который я написал для примера.

Как мой Product.wxs знает, как использовать эти файлы? Сначала он смотрит на локальный каталог? Или мне нужно перестроить некоторые модули C#?

Вам не нужно перестраивать какие-либо модули C#. Единственная причина, по которой вы загрузили исходники wix, заключается в том, что существующие последовательности пользовательского интерфейса и диалоговые окна являются хорошими примерами для начала. В принципе, вы также можете игнорировать исходники wix и записывать эти файлы wxs для последовательности пользовательского интерфейса и определения диалогов с нуля.

Когда вы используете инструменты командной строки, вы объединяете несколько файлов wxs, просто передавая несколько аргументов файла, и они будут скомпилированы и связаны друг с другом. Если вы используете wix с visual studio, вам просто нужно добавить файл wxs в проект. Нетривиальная настройка wix обычно определяется многими файлами wxs.

Содержимое файла wxs может содержать ссылки на элементы в других файлах wxs через такие элементы, как UIRef, ComponentRef, ComponentGroupRef, DirectoryRef и так далее.

Другие вопросы по тегам