Установщик WIX с несколькими записями в разделе Установка и удаление программ

StackOverflow https://stackoverflow.com/questions/606228

  •  03-07-2019
  •  | 
  •  

Вопрос

Я разрабатываю установщик для пакета приложений с использованием WIX, и структура следующая:
Ядро приложения
    |_ _ Вкус1
    |_ _ Вкус2
    |_ _ Вкус3

Ядро приложения - это продукт, подобный Visual Studio, а варианты 1,2,3 являются вложенными продуктами под ним.

Вот в чем моя проблема,
- В разделе Установка и удаление программ должно быть 4 записи для Application Core, Flavor1, Flavor2 и Flavor3.
- Я должен иметь возможность перезапустить установщик для добавления / удаления Flavor1, Flavor2 и Flavor3.

Это было полезно?

Решение

Обновить: Обратите внимание, что в то время как Офис появляется устанавливать отдельные функции, а не отдельные продукты - на самом деле устанавливается множество отдельных продуктов, которые не отображаются в ARP.Отдельная запись ARP добавляется для запуска установщика bootstrapper, который затем продолжает добавлять, удалять и обновлять существующие продукты, которые вы не видите в ARP.

Это должны быть функции, а не отдельные продукты.Возьмем, к примеру, пакет Microsoft Office, если вы устанавливаете пакет, то у вас есть только одна запись в разделе Установка и удаление программ, а Word, Excel, Powerpoint и т.д. - это просто "функции" Microsoft Office, и вы обновляете их таким образом.

Однако вы можете приобрести некоторые из этих приложений отдельно с их собственными установщиками, и в этих случаях "Ядро приложения", как вы выразились, входит в комплект каждого установщика, используя общие компоненты, так что файлы не нужно устанавливать дважды, и каждое приложение может быть установлено / деинсталлировано независимо друг от друга.

Вот небольшая выдержка из документации установщика Windows по Компоненты и особенности (возможно, вам также захочется прочитать Организация приложений по Компонентам)

Два компонента, которые используют один и тот же идентификатор компонента, рассматриваются как несколько экземпляров одного и того же компонента независимо от их фактического содержимого.Только один экземпляр любого компонент устанавливается на пользователя компьютер.Несколько функций или приложений, следовательно, могут совместно использовать некоторые компоненты.

Другие советы

Обычно это достигается установкой одного продукта, то есть одной записи в разделе Установка и удаление программ, которую вы можете изменить (выберите продукт, нажмите кнопку изменить).Затем вы перейдете к дереву функций, где вы можете добавлять или удалять функции.

Если отдельные записи являются жестким требованием, вам следует создать несколько MSIS.Но затем вы можете удалить "Ядро приложения" в вашем примере, оставив остальные установленными, что вызовет проблемы с настройками

Звучит так, будто вам нужны функции, поэтому Sander получает мой + 1.

Но иногда вам могут потребоваться разные установки одного и того же продукта, напримеробучающая и тестовая версии, установленные на одном сервере.В таких случаях вам нужно найти другой подход, вот один из них Я придумал (см. ответ Создавайте вживую, ...).Обратите внимание на правку о создании компонента для каждого файла и подстановке подстановочного знака guid, поскольку это упрощает процесс, т.е.никаких трюков перед сборкой / после сборки не требуется.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top