Wix для установки нескольких приложений

У меня, вероятно, странный запрос.

У меня есть msi для установки двух программ. После EULA должен появиться экран с двумя флажками и при выборе одного или обоих этих флажков необходимо установить соответствующее программное обеспечение.

Я использовал для установки одного программного обеспечения раньше никогда для двух.

Я был бы обязан за любые выводы.

Ответ 1

У установщика Windows есть понятие "функции", которое может быть выбрано для установки или опущено. Если вы уже создали рабочий установщик, у вас есть хотя бы один элемент <Feature> в ваших файлах WIX.

Просто создайте несколько элементов <Feature>, а затем используйте <UIRef Id="WixUI_Mondo" /> или <UIRef Id="WixUI_FeatureTree" />, чтобы пользователь мог выбрать, какие функции он хочет установить.

Ответ 2

  Сплоченность & Соединение: объединение приложений в один файл MSI может показаться хорошая идея. Кажется интуитивно приятным и простым. Тем не менее, говоря из опыта реального мира я почти всегда в конечном итоге расщепления приложения для установки через собственные файлы MSI, а мне не нравится многоязычные настройки либо.

Единственный случай, когда действительно безопасно развертывать приложения вместе, это когда они гарантированно:

  1. Всегда использовать вместе конечными пользователями
  2. Всегда обновляйтесь одновременно
  3. Со временем размер существенно не увеличится (Localization, New Prerequisites, etc...)

И обычно это невозможно предсказать. Как правило, вы быстро получите новые требования.

Central Challenge: What will likely take on a release-cycle of its own? (split it right now). Things tend to happen suddenly! Here are some common challenges:

Исправление ошибок: если ошибка есть только у одного приложения, руководство захочет предоставить только один новый MSI и оставить приложение 2 без изменений, и после установки не нужно будет выполнять новый запуск QA для обоих приложений. Это должно снизить риск и обеспечить более мелкое обновление, которое также быстрее тестируется и проверяется. Патчирование очень сложно и, как правило, более безопасно для файлов MSI, которые настолько просты, насколько это возможно, без слишком большого количества языков, пользовательских действий или конструкций GUI.

Локализация: внезапно появляется требование сделать приложение 1 доступным на итальянском языке, приложение 2 переводить не нужно. Языковая поддержка имеет тенденцию значительно увеличивать сложность установки, не говоря уже о ее размере. Ваш "хороший и простой" MSI теперь внезапно стал сложным в обслуживании и вялым в сборке. Это также реальная боль, если вам нужна единая установка, и вы переводите ее на многие языки - вы не сможете скомпилировать версию RTM, пока не будут введены все языковые обновления. Я могу сказать вам прямо сейчас, что маркетинг/продажи у людей не будет концепции сдерживать английскую версию, пока все локализованные версии не будут готовы.

QA/UAT: если приложения большого размера, поставка двух отдельных файлов MSI облегчит разделение усилий по тестированию между различными командами QA и доставку новых обновлений с помощью ночных сборок и т.д....

Расписание выпуска: внезапно меняется расписание выпуска приложений - теперь приложение 1 обновляется каждый месяц, а приложение 2 обновляется только каждые шесть месяцев. Если приложения используют разные пользователи, как вы доставляете обновления? Собрать все в один MSI и присвоить ему новый номер версии только для того, чтобы пользователи приложения 2 снова устанавливали одно и то же приложение?

Примените общие принципы разработчика of сплоченности и связи к пакетам развертывания, и вы избавите себя от множества проблем. Если приложения сейчас или в будущем могут взять на себя собственный жизненный цикл - немедленно разделите их развертывание. И кто может заглянуть в будущее?

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

Обновление Wix: С появлением Wix для создания сложных настроек стало проще создавать включаемые файлы Wix, которые можно скомпилировать в несколько файлов MSI. Это фактически становится более гибким типом модуля слияния. Это может упростить разбиение или слияние файлов MSI в будущем. Смотрите обсуждение этой функции здесь. Еще одна ссылка.

Чистый размер установки: существуют некоторые ограничения в отношении того, сколько компонентов и файлов вы можете иметь в одном MSI. Некоторые подробности:

По этой причине и по другим причинам, перечисленным выше, может быть полезно "разложить" огромный MSI на несколько связанных MSI, чтобы упростить обслуживание (скорость сборки и компиляции, перекомпоновка только одного из множества файлов MSI и т.д.), Наконец, вы должны придерживаться использования одного файла для каждого компонента, чтобы обновления и исправления работали правильно. Несколько файлов MSI могут быть установлены последовательно с помощью загрузчиков или приложений запуска, таких как Burn from WiX, или функций в коммерческих инструментах, таких как Installshield и Advanced Installer. Вот ответ, который затрагивает эту тему. И просто добавляю другой ответ, который немного похож на.


Ссылки:

Ответ 3

Вы не можете установить несколько приложений из одной MSI. Даже если вы выясните способ сделать это, вы действительно не должны.

Вместо этого есть отдельные MSI для каждого приложения и используйте загрузчик для установки обоих. Например. вы можете использовать Inno Setup для создания автономного загрузочного exe файла, который устанавливает оба MSI (и любые предварительные условия).

BTW, Wix не обрабатывает создание загрузочных машин, поэтому вам нужно использовать его в сочетании с другим инструментом.

Ответ 4

Вы можете выполнить установку вложенных msi pre windows installer 4.

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

Замените api на вызов msiembeddedui и создайте цепочку транзакций.

Ответ 5

Вы можете создать несколько MSI, а затем объединить их в 1, содержащий MSI. "Родительский" MSI позволяет вам выбрать, какое приложение установить, а затем запускает этот MSI.

Если вам действительно нужны 2 приложения, тогда есть разработчики инсталляторов MSI (например, NSIS), которые позволяют вам это делать, но вы должны выполнять всю работу самостоятельно.