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 практический. Просто сосредоточьтесь на примерах и сконцентрируйтесь на создании компонентов и настройке основного обновления:
- Как реализовать обновление установщика WiX? (современный, удобный способ)
- Как заставить работать главное обновление WiX? (устаревший способ - более гибкий, менее удобный)
- http://wixtoolset.org/documentation/manual/v3/howtos/updates/major_upgrade.html
После того, как вы запустите этот процесс, остальные детали станут понятными, прочитав документацию для любой необходимой вам функции. Использование Visual Studio / Votive с intellisense гарантирует, что вы сможете учиться с такими функциями, как ярлыки, ini-файлы, xml-файлы, диалоги и т. Д.
Другой совет - использовать dark.exe (часть инструментария Wix) для декомпиляции существующих файлов MSI. Это дает Wix XML с кодом, который вы можете скопировать и вставить в свои собственные файлы Wix. Я использую другие инструменты MSI для компиляции таких MSI-файлов, а затем копирую нужные мне разделы в мой файл Wix - просто для ускорения процесса создания Wix XML. Изучение декомпилированного XML очень познавательно - экономит время.
- Если все файлы находятся в одной папке назначения, вы можете создать один единственный КОМПОНЕНТ со всеми ФАЙЛАМИ в нем. Ничто не мешает вам сделать это. Затем вы можете просто создать один GUID для этого компонента. Также прочитайте эти ответы, в которых говорится о преимуществах и недостатках одного компонента по сравнению с несколькими компонентами, прежде чем его реализовать: Ответ1 Ответ2. Подвести итоги:
У вас будут проблемы с незначительными обновлениями / ремонтом. Если компонент обновляется, проверяется только файл, обозначенный как KEYPATH, чтобы выяснить, устарел ли он: если он актуален, все остальные игнорируются.
У вас также будут трудности, если вы хотите добавить или удалить файлы из каждого компонента. После освобождения компонент является неизменным (в зависимости от того, какие файлы в нем находятся). Единственный способ обновить его, не нарушая правил компонентов, - это эффективно удалить и установить новую версию MSI. Понимание правил компонентов является ключевым в установщике Windows, и один файл для каждого компонента облегчает работу с правилами компонентов, поэтому это рекомендация многих людей здесь.
- Имя корневого каталога можно изменить, изменив свойство "Имя" для элемента DIRECTORY.