Я пытаюсь написать установщик для созданного мной веб-сайта. В руководстве по WiX сказано: «Опять же, компонент должен содержать только те элементы, которые связаны друг с другом настолько, что их всегда нужно устанавливать или удалять вместе». Я считаю, что под это описание подходит целый веб-сайт. У меня 2 проблемы с компонентами. Во-первых, очевидно, что на моем веб-сайте много каталогов, и я не могу понять, как собрать все каталоги / файлы в один компонент (возможно ли это вообще?), И что если я сгенерирую свои компоненты из программы, мой GUID почти наверняка должен будет быть разным в каждой сборке, вынуждая менять основную версию с каждым выпуском? Что-то мне не хватает?
Создание файла WiX XML при вопросах сборки и компонентов
Ответы (3)
Файлы компонента не могут занимать каталоги. Ограничение установщика Windows. Получить стабильные идентификаторы компонентов - непростая задача, но в WiX v3 есть несколько новых уловок, которые могут решить эту проблему за вас. Компонент / @ Guid = "*" - это уловка. Новый (как и на прошлой неделе) heat.exe сгенерирует для вас фрагменты, которые кажутся вам наиболее подходящими.
Я должен признать, что мой опыт работы с WIX довольно ограничен. Однако у меня создалось впечатление, что компонент соответствует одному устанавливаемому объекту, например файлу или DLL. Они организованы в группы компонентов, которые затем добавляются к функциям. Функции - это вещи, которые устанавливаются как модули, например: ядро, документация и примеры. В этом случае вам всегда понадобится компонент Core, но функции документации и примеров могут быть опущены.
Я не думаю, что изменение GUID компонента заставит вас изменить основной номер версии.
Мне самому было нелегко с WIX, поскольку кривая обучения может быть довольно крутой. Надеюсь, это поможет.
Пройдя через это, вот мой совет:
- У каждого файла должен быть свой компонент.
- Если вы выполните шаг 1., как говорит Роб, каждый компонент может иметь атрибут GUID = " * "
- ComponentGroup - ваш друг :)
- Если вы установите ProductCode как * и оставите UpgradeCode как фиксированный GUID, вам не нужно писать новый установщик обновления для каждого обновления, потому что ваш MSI является как установщиком новой установки, так и установщиком обновления. Чтобы помочь контролировать это необходимо понимать элементы Upgrade и UpgradeVersion.
Еще несколько приемов здесь.