Wix генерирует один идентификатор компонента для всего дерева

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

Также есть ли способ, которым я могу изменить имя корневого каталога, я хочу, чтобы файлы были установлены. В настоящее время в нашей системе сборки файлы, которые я хочу установить, попадают в каталог с именем "install". В файле wxs, сгенерированном при нагреве, он появляется при установке. Мне было интересно, смогу ли я изменить его на фактическое название продукта вместо "установить".

2 ответа

Используйте один файл на компонент - это позволяет избежать всевозможных проблем (кроме сборок.NET, охватывающих несколько файлов). Смотрите следующую ветку: Wix: один файл на компонент или несколько файлов на компонент?

Wix - отличная среда для создания инсталляторов, но у нее крутой курс обучения. Я настоятельно рекомендую вам прочитать несколько разделов этого замечательного онлайн-учебника: http://wix.tramontana.co.hu/.

Если вы "мастер на основе сэмплов", вы можете найти еще более быстрый тур на сэмплах в этой статье: http://www.codeproject.com/Tips/105638/A-quick-introduction-Create-an-MSI-installer-with

Wix практический. Просто сосредоточьтесь на примерах и сконцентрируйтесь на создании компонентов и настройке основного обновления:

После того, как вы запустите этот процесс, остальные детали станут понятными, прочитав документацию для любой необходимой вам функции. Использование Visual Studio / Votive с intellisense гарантирует, что вы сможете учиться с такими функциями, как ярлыки, ini-файлы, xml-файлы, диалоги и т. Д.

Другой совет - использовать dark.exe (часть инструментария Wix) для декомпиляции существующих файлов MSI. Это дает Wix XML с кодом, который вы можете скопировать и вставить в свои собственные файлы Wix. Я использую другие инструменты MSI для компиляции таких MSI-файлов, а затем копирую нужные мне разделы в мой файл Wix - просто для ускорения процесса создания Wix XML. Изучение декомпилированного XML очень познавательно - экономит время.

  1. Если все файлы находятся в одной папке назначения, вы можете создать один единственный КОМПОНЕНТ со всеми ФАЙЛАМИ в нем. Ничто не мешает вам сделать это. Затем вы можете просто создать один GUID для этого компонента. Также прочитайте эти ответы, в которых говорится о преимуществах и недостатках одного компонента по сравнению с несколькими компонентами, прежде чем его реализовать: Ответ1 Ответ2. Подвести итоги:

У вас будут проблемы с незначительными обновлениями / ремонтом. Если компонент обновляется, проверяется только файл, обозначенный как KEYPATH, чтобы выяснить, устарел ли он: если он актуален, все остальные игнорируются.

У вас также будут трудности, если вы хотите добавить или удалить файлы из каждого компонента. После освобождения компонент является неизменным (в зависимости от того, какие файлы в нем находятся). Единственный способ обновить его, не нарушая правил компонентов, - это эффективно удалить и установить новую версию MSI. Понимание правил компонентов является ключевым в установщике Windows, и один файл для каждого компонента облегчает работу с правилами компонентов, поэтому это рекомендация многих людей здесь.

ССЫЛКА НА САЙТ

  1. Имя корневого каталога можно изменить, изменив свойство "Имя" для элемента DIRECTORY.
Другие вопросы по тегам