Создание файла WiX XML при вопросах сборки и компонентов

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


person Greg    schedule 04.03.2009    source источник


Ответы (3)


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

person Rob Mensching    schedule 13.03.2009

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

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

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

person jonnii    schedule 04.03.2009
comment
Насколько я понимаю, простое добавление или удаление файлов считается серьезным обновлением. Почти в каждый выпуск веб-приложения будут добавляться и удаляться файлы, но для меня это не является серьезным обновлением. - person Greg; 04.03.2009
comment
Возможно, вам стоит рассмотреть другие способы развертывания вашего веб-приложения? - person jonnii; 04.03.2009

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

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

Еще несколько приемов здесь.

person si618    schedule 14.07.2009