Найти в Дзене
Михаил Губин

Установка и удаление программ: инсталляторы

Все мы видели программы с названием типа unins000.exe. Это утилиты удаления программного обеспечения, создаваемые установщиками дистрибутивов, в частности, InnoSetup и InstallShield Wizard (Flexera InstallShield). Иногда создает и Windows Installer. Я тут недавно слышал недоверчивые высказывания типа "установщики сейчас не используют", "драйвера устанавливаются сами". Так вот, далеко не сами и драйвера как раз используют один из типов установщиков, управляющий чаще всего написанным на C++, Visual Basic или C# созданным установочным пакетом. Расширения установочных пакетов Сами пакеты используют одно из двух расширений: .EXE либо .MSI. Оба расширения используются для самораспаковывающихся (SFX) одно- или многотомных архивов (в случае многотомного архива будет создан файл .cab). Файл .MSI - это установочный пакет Windows Installer, он является самым частым. Что происходит при установке? Мы можем это разобрать при помощи innoScript Studio, на примере создания пакета в которой я могу все п
Оглавление

Все мы видели программы с названием типа unins000.exe. Это утилиты удаления программного обеспечения, создаваемые установщиками дистрибутивов, в частности, InnoSetup и InstallShield Wizard (Flexera InstallShield). Иногда создает и Windows Installer. Я тут недавно слышал недоверчивые высказывания типа "установщики сейчас не используют", "драйвера устанавливаются сами". Так вот, далеко не сами и драйвера как раз используют один из типов установщиков, управляющий чаще всего написанным на C++, Visual Basic или C# созданным установочным пакетом.

Расширения установочных пакетов

Сами пакеты используют одно из двух расширений: .EXE либо .MSI. Оба расширения используются для самораспаковывающихся (SFX) одно- или многотомных архивов (в случае многотомного архива будет создан файл .cab).

Файл .MSI - это установочный пакет Windows Installer, он является самым частым.

Что происходит при установке? Мы можем это разобрать при помощи innoScript Studio, на примере создания пакета в которой я могу все показать.

Как создать установочный пакет

зайти в которую можно через верхнее меню, я отметил секцию стрелкой.

Давайте посмотрим, что там есть.
Давайте посмотрим, что там есть.
А вот так это будет выглядеть в скрипте:
А вот так это будет выглядеть в скрипте:
-3

Подробнее про InnoSetup можете пошарить в Интернете, инструкций много и я не буду тут все описывать, а просто покажу общие моменты.

Теперь мы добавим файлы в наш пакет. Для этого идем сюда.

После нажатия на кнопку появляется вот такая фигнюшка.
После нажатия на кнопку появляется вот такая фигнюшка.
Сейчас нас интересуют источник и имя файла, остальное не колышет. Нажмите на три точки в графе Источник. Появится меню выбора. Выбираете файл и нажимаете ОК. Должно получиться вот так.
Сейчас нас интересуют источник и имя файла, остальное не колышет. Нажмите на три точки в графе Источник. Появится меню выбора. Выбираете файл и нажимаете ОК. Должно получиться вот так.
Имя файла можно не заполнять, если хотите чтобы оно осталось прежним.
Имя файла можно не заполнять, если хотите чтобы оно осталось прежним.

После нажатия ОК должен появиться новый элемент.

-7

Скрипт теперь выглядит вот так.

Простой установщик готов.
Простой установщик готов.

Давайте теперь соберем его. За сборку в ISS отвечает вот эта незначительная кнопочка. Давайте нажмем ее.

Если вы не сохраняли свое творение то система вас спросит.
Если вы не сохраняли свое творение то система вас спросит.
Отвечаем Нет, поскольку проект пробный. Если у вас что-то свое, отвечайте Да.
Отвечаем Нет, поскольку проект пробный. Если у вас что-то свое, отвечайте Да.

Начинаем собирать... и сразу натыкаемся на ошибку.

В чем дело? Все просто, мы не задали папку по умолчанию для установщика. Давайте зададим ее. Идем опять в Параметры установки.
В чем дело? Все просто, мы не задали папку по умолчанию для установщика. Давайте зададим ее. Идем опять в Параметры установки.

Пишем свою папку примерно как у меня.

В скрипте оно смотрится так:
В скрипте оно смотрится так:
Снова пробуем собрать... и...
Снова пробуем собрать... и...
Удача! Наш пакет готов к запуску.
Удача! Наш пакет готов к запуску.

Идем в папку Мои документы, заходим там в папку Output и смотрим.

Вот и все. Установщик собран. Теперь вы знаете, как создать простой пакет установки. Если нужно подробнее то посмотрите мануалы, видео на ютубе и так далее.
Вот и все. Установщик собран. Теперь вы знаете, как создать простой пакет установки. Если нужно подробнее то посмотрите мануалы, видео на ютубе и так далее.

Почему в названии утилит удаления в названии три ноля в названии?

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