Генерация XML-файла WiX при сборке и вопросах о компонентах - PullRequest
0 голосов
/ 04 марта 2009

Я пытаюсь написать установщик для сайта, который я создал. В руководстве по WiX говорится: «Опять же, компонент должен содержать только элементы, которые так тесно связаны друг с другом, что их всегда нужно устанавливать или удалять вместе». Я считаю, что весь сайт соответствует этому описанию. У меня есть 2 вопроса относительно компонентов. Во-первых, очевидно, что на моем веб-сайте много каталогов, и я не могу понять, как собрать все каталоги / файлы в 1 компонент (это вообще возможно?), И что, если я сгенерирую свои компоненты из программы, мой GUID почти наверняка придется будет отличаться в каждой сборке, заставляя изменение основной версии с каждым выпуском? Что-то мне не хватает?

Ответы [ 3 ]

2 голосов
/ 13 марта 2009

Файлы компонента не могут охватывать каталоги. Ограничение установщика Windows. Получение стабильных компонентных идентификаторов - сложная проблема, но в WiX v3 есть несколько новых приемов, которые могут решить эту проблему за вас. Компонент / @ Guid = "*" это хитрость. Новый (как и на прошлой неделе) heat.exe сгенерирует фрагменты для вас, которые, кажется, соответствуют вашим потребностям.

0 голосов
/ 14 июля 2009

Пройдя через это, вот мой совет:

  1. Каждый файл должен иметь свой собственный компонент.
  2. Если вы выполните шаг 1. Как говорит Роб, каждый компонент может иметь атрибут GUID = "*"
  3. ComponentGroup - твой друг :)
  4. Если вы установите ProductCode как * и оставите UpgradeCode в качестве фиксированного GUID, вам не нужно писать новый установщик обновлений для каждого обновления, потому что ваш MSI является как установщиком новой установки, так и установщиком обновления. Чтобы помочь контролировать это , вам нужно понять элементы Upgrade и UpgradeVersion.

Еще несколько трюков здесь .

0 голосов
/ 04 марта 2009

Должен сразу признать, что мой опыт работы с WIX довольно ограничен. Однако у меня сложилось впечатление, что компонент сопоставлен с одной устанавливаемой вещью, такой как файл или DLL. Они сгруппированы в группы компонентов, которые затем добавляются к элементам. Функциональные возможности - это то, что устанавливается как единое целое, например: ядро, документация и примеры. В этом случае вам всегда потребуется компонент Core, но функции «Документация» и «Примеры» могут быть опущены.

Я не думаю, что изменение GUID компонента заставит вас изменить основной номер версии.

Мне самому было трудно с WIX, поскольку кривая обучения может быть довольно крутой. Надеюсь, это поможет.

...