Связность и взаимосвязь: объединение приложений в один файл MSI может показаться хорошей идеей. Это кажется интуитивно приятным и простым. Однако, исходя из реального опыта, я почти всегда разбиваю приложения для установки с помощью их собственных файлов MSI, и мне тоже не нравятся многоязычные настройки (настоящие многоязычные настройки трудны, потому что переведенные контент обычно не готов, когда маркетинг и продажи требуют быстрого выпуска версии на родном языке (обычно английской версии).
Развертывать приложения вместе действительно безопасно только тогда, когда они гарантированно:
- Всегда использоваться конечными пользователями вместе
- Всегда получайте обновления в одно и то же время
- Не будет существенно увеличиваться в размерах со временем (
Localization
, New Prerequisites
, etc...
)
И обычно это невозможно предсказать. Обычно новые требования появляются быстро.
Центральная задача: What will likely take on a release-cycle of its own?
(разделите ее прямо сейчас). Все обычно случается внезапно! Вот некоторые общие проблемы:
Исправления ошибок: если только в одном приложении есть ошибка, руководство захочет доставить только один новый MSI и оставить приложение 2 нетронутым и без необходимости выполнять новый цикл контроля качества для обоих приложений после установки. Это необходимо для снижения риска и предоставления обновлений меньшего размера, которые также можно быстрее протестировать и проверить. Исправление очень сложно и, как правило, безопаснее для файлов MSI, которые максимально просты, без слишком большого количества языков, настраиваемых действий или конструкций графического интерфейса.
Локализация: внезапно вы получаете требование сделать приложение 1 доступным на итальянском языке, приложение 2 не нужно переводить. Языковая поддержка имеет тенденцию значительно усложнять настройку, не говоря уже о ее размере. Ваш красивый и простой MSI внезапно стал сложным в обслуживании и вялым в создании. Это также настоящая боль, если вам нужна единая установка, и вы переводите ее на многие языки - вы не сможете скомпилировать RTM-версию, пока не будут обновлены все языковые обновления. Я могу сказать вам прямо сейчас, что маркетинг / продажи у людей не возникнет идеи сдерживать английскую версию до тех пор, пока не будут готовы все локализованные версии.
QA / UAT: если приложения большие, доставка 2 отдельных файлов MSI упростит разделение усилий по тестированию между разными командами QA и доставку новых обновлений с помощью ночных сборок и т. д.
График выпуска: внезапно график выпуска приложений меняется - приложение 1 теперь обновляется каждый месяц, а приложение 2 обновляется только каждые шесть месяцев. Если приложениями используют разные пользователи, как вы доставляете обновления? Собрать все это в одном MSI и присвоить ему новый номер версии только для того, чтобы пользователи приложения 2 снова установили одно и то же приложение?
Примените к пакетам развертывания общие принципы разработчика: сплоченность и привязку, и вы избавитесь от множества проблем. Если приложения сейчас ИЛИ в будущем могут начать свой собственный жизненный цикл - сразу же разделите их развертывание. А кто может заглянуть в будущее?
Обратите внимание, что обычно вы обертываете несколько файлов MSI в загрузчике, чтобы у пользователей по-прежнему оставался только один файл, даже если продукты устанавливаются через отдельные файлы MSI.
Обновление Wix: с появлением Wix для создания сложных настроек стало проще создавать включаемые файлы Wix, которые можно скомпилировать в несколько файлов MSI. Фактически это становится более гибким типом модуля слияния. Это может упростить разделение или объединение файлов MSI в будущем. См. обсуждение этой функции здесь. Еще одна ссылка.
Чистый размер установки. Существуют некоторые ограничения в отношении количества компонентов и файлов, которые вы можете иметь в одном MSI. Некоторые подробности:
По этой и другим причинам, перечисленным выше, может быть полезно разложить огромный MSI на несколько связанных MSI, чтобы упростить обслуживание (скорость сборки и компиляции, восстановление только одного из многих файлов MSI и т. Д.). Наконец, вы должны придерживаться использования одного файла для каждого компонента, чтобы обновление и исправление работали правильно. Несколько файлов MSI можно установить последовательно с помощью загрузчиков или приложений запуска, таких как Burn from WiX, или функций в коммерческих инструментах, таких как Installshield и Advanced Installer. Вот ответ, который затрагивает по этой теме. И просто добавив другой ответ, который немного похож.
Ссылки:
person
Stein Åsmul
schedule
10.10.2009