Добавление первого настраиваемого диалогового окна в 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
Это где я начинаю заблудиться.
Нужно ли мне копировать некоторые (только те, которые я хочу изменить) или все эти файлы в мой проект Visual Studio. До сих пор я не работал ни с одним из этих исходных файлов.
Как мой 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
и так далее.