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

5 комментариев:

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

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

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

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

    ОтветитьУдалить
  3. Давно хотел с ним поковыряться, но никак время не выделю. Напиши пожалуйста статью или кинь ссылкой с пошаговым созданием MSI пакета и с работающим архивом проекта. Я был бы очень признателен.

    ОтветитьУдалить
  4. stokito, здесь я выкладывал подборку ссылок на обучающие материалы по Wix-у.

    ОтветитьУдалить
  5. Я конечно не такой продвинутый виндузятник как Вы, но при установке EXE можно из-под обычного юзера запустить из шелла "Запуск от имени..." и выбрать Админа. Почему-то не нашел такого для MSI, только какие-то костыли для этого

    ОтветитьУдалить

Постоянные читатели