Добавление первого настраиваемого диалогового окна в WIX в среде VisualStudio - PullRequest
4 голосов
/ 13 января 2010

Я использую 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 Ответ

5 голосов
/ 13 января 2010

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

...