Motto

В тихом саду здравомыслия
Пусть на вас постоянно падают
кокосовые орехи пробужденности.
Чогьям Трунгпа РИНПОЧЕ


вторник, 28 апреля 2009 г.

Чем же так хорош MSI?

Раз грозился вчера написать, в чём MSI лучше чем Nsis и Inno Setup, то надо выполнять угрозу. =) Скажу сразу, последний раз я смотрел Nsis и Inno Setup года два тому назад, но на первый взгляд, ничего глобально в них не изменилось. Эта тема отлично подходит для холиваров, особенно если опустить конкретные требования к инсталлятору. Посему хочу напомнить: для разных задач - разные инструменты.

Плюсы Windows Installer

  1. Во-первых, Windows Installer - единственный из известных мне установщиков, который сам проверяет, не используются ли сейчас какие-нибудь из инсталлируемых файлов, и выводит список программ, которые необходимо закрыть для продолжения инсталляции. Насколько я помню, в InnoSetup и Nsis в этом случае предлагают создавать в приложении какой-нибудь глобальный объект(например, мьютекс) и проверять его из инсталляции(уж не помню какие для этого привилегии нужны, но какие-то точно нужны).
  2. MSI-инсталляция может существенно упростить жизнь системного администратора. Особенно в крупной организации. Особенно если системный администратор не понаслышке знает что такое Group Policy[1]. Многие заказчики, требуют поставки инсталляций именно в MSI. К слову, через Group Policy можно распространять не только MSI, но удобств будет меньше.[2]
  3. MSI для винды - это стандарт де-факто.
  4. Для получения Certified for Windows Vista нужна инсталляция в MSI.(для меня и моей работы сейчас не особо актуально, но почему бы не сделать задел на будущее)

Минусы Windows Installer

  1. Время освоения существенно больше, чем для Nsis и Inno Setup
  2. Для создания инсталляции на другом языке, нужно делать отдельную инсталляцию.
  3. Использование Windows Installer не избавляет вас от возможных ошибок, даже наоборот, долгая возня приводит к искушению сделать “лишь бы побыстрее”

Выводы

Т.е. если Ваши клиенты – крупные компании, с большим количеством ограниченных в правах пользователей, то Вы наверное не читаете этот блог MSI – это то, что нужно. А если Вам нужно побыстрее сделать собрать установщик для домашних пользователей, то Inno Setup или Nsis – будет наиболее простым решением задачи.

А вообще, список установщиков для Windows достаточно велик, так что выбор всегда есть. ;-)

Ссылки по теме

Обсуждения на StackOverflow:

Сноски

[1] В моём университете, например, некоторые администраторы даже не подозревают о том, что такое возможно, и устанавливают софт на каждый компьютер вручную. Типичный ответ: да здесь же всего 10(20, 30) компьютеров!

[2] http://en.wikipedia.org/wiki/ZAP_File

2 человек заметили этот пост:

Анонимный комментирует...

По поводу
>> Для создания инсталляции на другом языке, нужно делать отдельную инсталляцию.
Не обязательно делать отдельную инсталляцию, достаточно создать Transform файл .MST и подключать его к MSI пакету, существует даже не документированная возможность (может уже и документированная) внедрять MST файлы в MSI пакеты и выбор языка будет происходить от текущей локали.

Добавлю, что с помощью технологии Windows Installer очень удобно делать так называемые патчи, которые очень маленькие по размеру.
Также поддерживается RollBack в процессе установке, т.е. если в процессе установки нажать отменить, то система востановится в первоначальное состояение.

Aleksey Timohin комментирует...

> Также поддерживается RollBack в процессе установке...

InnoSetup и NSIS также умеют откатывать изменения, если при установке что-то пойдёт не так.
Да и в Windows Installer при использовании собственных скриптов в инсталляции придётся повозится с условиями для реализации Rollback-a.

Отправить комментарий

Читатели