Найти в Дзене
Олег Тимашевский

Windows. Создание установщика из пачки файлов

Доброго здравия, мир в дом. Часто есть Portable- т.е. портативные версии программ, которые нужно сохранить от антивируса и сделать установщик. Чтобы установить такие программы на другой компьютер или ноутбук достаточно скопировать папку с этой программой без установки. Но во первых, для хранения программного продукта желательно сжать её, а во вторых как то нехорошо устанавливать софт простым копированием папки, по дедовски, так сказать. Да и пользователи с нормальным установщиком увидят что мы не просто что то копируем и чудим, а устанавливаем, по другому смотреть на всё это дело будут, не как на какой то колхоз. Есть такая абсолютно безплатная программа Inno Setup Compiler которая выполняет создание инсталятора из пачки файлов и из ещё много чего, например из команд, которые делают записи в реестре Windows в процессе установки. Скачать Inno можно с официального сайта разработчика здесь. На данный момент доступна версия 6.7.1, которую можно загрузить по красной ссылке, более старые вер
Оглавление

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

Inno Setup Compiler

Есть такая абсолютно безплатная программа Inno Setup Compiler которая выполняет создание инсталятора из пачки файлов и из ещё много чего, например из команд, которые делают записи в реестре Windows в процессе установки. Скачать Inno можно с официального сайта разработчика здесь.

На данный момент доступна версия 6.7.1, которую можно загрузить по красной ссылке, более старые версии доступны на странице по ораньжевой ссылке.

Процесс установки стандартный и ничего там сложного нет: как всегда жмём "Далее", "Далее" и "OK".

Также эта программа пригодится для создания установщиков для своих сборок, когда скомпилированный exe-шник с dll-файлами нужно собрать в инсталлятор с дополнительными файлами вроде текстовиков и картинок.

Создаём установщик WiseCare365

WiseCare365 это программа от немецких разработчиков для очистки Windows от мусора и временных файлов, есть как портативная версия так и установщик. Последние версии все давно платные, а вот у меня сохранилась старая безплатная версия, но портативная, без установщика. Будем исправлять это, кстати, чуть не забыл, про эту программу у меня есть отдельная публикация и ознакомится с этой программой более подробно можно именно в нет, по ссылке ОЧИСТКА WINDOWS Ч\З WISE CARE 365.

Что ж, приступим. Запускаем.. нет не Wise, а Inno Setup. и выбираем в меню "New...".

-2

На появившейся странице мастера настройки прожимаем "Next" и попадаем в первое окно настроек. Тут указываем последовательно имя программы, её версию, имя компании-разработчика и сайт компании.

-3

Понятное дело что чтобы перейти к следующему шагу прожимаем "Next". Прожимаем и сейчас и попадаем в окно с указанием пути установки. Ничего мудрить не будем и ничего тут не трогаем - программа будет устанавливаться в стандартную папку "Program Files", папка программы совпадает с названием.

-4

Следующая вкладочка уже поинтереснее. Тут сверху нужно указать путь к exe-шнику, а в нижнем окне все файлы, которые попадут в папку с программой, её мы указывали на предыдущем шаге. У меня получилось так.

-5

В установщик попадут файлы из "D:\Install\WiseCare365", а сам exe-шик получился "WiseCare365_v.4.22.exe". Если для нашей сборки нет своих типов файлов, что в 99% случаев так и есть, то на следующей вкладке галочку снимаем.

-6

Пошагали дальше. Тут две галочки оставляем. Это позволит установщику прописать нашу программу в меню пуск, а пользователь при установке сможет при установке кинуть ярлык на рабочий стол.

-7

На следующем шаге мы можем указать текстовой файл лицензионного соглашения, который можно составить самому, файл с информацией перед установкой и после установки. В папке в портативной версией WiseCare лежал родной файл лицензии, его я и указал в первом поле.

-8

Далее оставляем всё как есть.

-9

А вот следующее окошко поинтереснее. Тут указывается файл реестра Windows, которое будет импортировано в рабочий реестр при установке. Предварительно этот файл должен быть подготовлен. Тут можно вживить в реестр не только настройки и параметры устанавливаемой программой. Можно как изменить определённые ветки реестра, что может привезти к краху системы, так и вживить закладку (не путать с уличными), подменить explorer.exe на свой пропатченный и т.п. Я ничего не указывал.

-10

Дальше указал русский язык, зачем нам буржуйские.

-11

Дальше указываем папку куда будет "выплюнут" инсталлятор программы после компиляции, а также имя установщика. Я указал "D:\Install" и "Install Wise Care 365 v.4.22" соответственно.

-12

Фух бл. Вроде всё.. Почти. Дальше можно стиль окна установщика указать, не устанавливаемой программы! Сделаем чёрненький цвет, под цвет куртки, куртка то у меня чёрная (да и пацаны заценят).

-13

Следующий шаг уже 15й. Не в два клика делается инсталлятор. Тут программа спрашивает использовать ли директиву "#define" для установки констант в сборочный скрипт, его мы увидим далее. Галочку оставляем, почему бы и нет, да и удобнее так будет.

-14

В результате наших трудов получаем установочный скрипт, который говорит программе "Inno Setup" как и из чего делать инсталлятор. Сверху ораньжевым я выделил константы, а внизу зелёным я выделил переменные, но только те которые были указаны на предыдущих шагах, на самом деле их предусмотрено гораздо больше.

-15

Ниже по скрипту указаны файлы и папки, участвующие в сборке, они будут скопированы в директорию установки. А в самом низу исполняемый exe-шник.

-16

Всё это дело можно подправить руками, если что то указали не так. Запукаем компиляцию установщика стрелочкой вниз и ждём завершения.

-17

Я указал чтобы установщик Wise Care был положен в папку "D:\Install", так и есть, вот он.

-18

Запускаем собранный установщик и соглашаемся с родной лицензией от разработчиков, я ничего не дописывал.

-19

Я руками указал exe-шник в "Program Files" а нет в "Program Files x86", поэтому после установки программа сразу не запустилась, но не беда, создался ярлык на рабочем столе, через него "Wise Care" благополучно запустился. Можно чистить ПК.

-20

Ну как то так.

Дополнительные опции

Через переменные в скрипте можно указать дополнительные опции и правила сборки.

Сжатие. Например, можно указать метод сжатия исходных файлов в инсталятор. Под переменными набираем "Co" и программа "Inno Setup" подсказывает что есть такая переменная.

-21

Жмём "Enter" и ставим знак равенства и программа нам выдаёт возможные методы сжатия, можно выбрать любой, для процессоров посильнее посильнее, для процессоров послабее что то по проще.

-22

Число потоков сжатия. Имя переменной "CompressionThreads". Для ускорения выполнения сжатия при компиляции можно указать несколько потоков.

Цифровая подпись. Справка показывает что этой переменной можно указать exe-шник вместе с параметрами для того чтобы сделать цифровую подпись для полученного установщика, например, для "Install Wise Care 365 v.4.22".

-23

Установочный мьютекс. Есть такой метод блокировки в многопоточности. А здесь также блокировка, но установки. Т.е. когда программа установки запущена второй раз её же запустить не получится, будет сообщение что "ты что дядь, установка уже идёт". Имя мьютекса произвольное, латиницей.

-24

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

Обновить переменные окружения. Имя переменной "ChangesEnvironment". Если установлено в "yes", то после установки всем программам отправляется сигнал на обновление переменных окружения Windows. Похоже что где то эти переменные можно поменять, но этого я не искал.

Вообще переменных не так уж и много как могло бы показаться на первый взгляд, ничего сверх естественного, но для безплатной программы сойдёт.

..

Итог

Такая вот программа в помощь сисадмину да и обычному пользователю. Теперь можно делать какие то свои сборки и поднастраивать систему под себя.

Что даёт этот тул (инструмент). Что по итогу то. Как говорится за безплатно чудес не ждите, так и здесь. Ничего тут нет сверх естественного, особого функционала нет, всё простенько, бедненько, но сделать свой инсталлятор пойдёт. Программа "Inno Setup" не столь выдающаяся, но свою работу выполняет, ..нормально.

Как говорил Остап Бендер, простенько и со вкусом. А за функционалом идите на платные версии. За безплатно особо не разгуляешься, но для разработчиков начального уровня нормально. Тут главное делать качественный исходный код и exe-шники, такие дела.