Программа для создания установочных файлов
Я не являюсь профессиональным программистом. В том смысле, что не зарабатываю денег этим ремеслом, а использую свои навыки в качестве инструмента для основной, научной, деятельности. Поэтому все мои «поделки» живут лишь отведенный им на решение конкретной задачи период и не выходят за пределы каталогов проекта. Кроме того, уже довольно давно я отошел от разработки под ОС Windows, ибо Linux для решения моих задач более удобен.
Однако ученым тоже хочется кушать, прилично одеваться и заправлять машину. Поэтому (правда довольно редко) возникает необходимость немного пофрилансить.
Недавно мне подкинули не слишком сложный проект — одна фирма хочет написать аналог программы, имеющейся у другой. Немного реверсинга, немного кодинга, в целом проект вполне обыденный. Однако тут же возник вопрос о создании инсталлятора — клиент ведь желает продукт «под ключ», чтобы клацнуть на «сетап», понажимать «Далее» и получить готовую к работе программу.
Созданием инсталляторов я не занимался никогда. Поэтому данный вопрос был основательно «загуглен», в числе прочего попалась и такая статья с Хабра. Выбор средств для подобной задачи довольно широк, и включает как проприетарные, так и открытые продукты. Вот список того, что я «пощупал»
-
— классика жанра, достаточно солидный проприетарный продукт — проприетарный инструмент с широкими возможностями кастомизации через GUI. На сайте сказано, что если Вы блоггер и будете писать об этом продукте много хороших слов, то у Вас есть возможность получить Free License — открытый бесплатный продукт, основанный на XML-скриптах. Мощная, хорошо документированная штука. Разбираться с ним я пока не стал, ибо время дорого (да и к XML душа лежит не очень). Возможно когда нибудь я к нему вернусь. Да, к нему есть плагины для Visual Studio, что несомненный плюс. — опенсорсный проект, код которого доступен на гитхабе. В силу бесплатности и низкого порога вхождения мой выбор остановился именно на нем, как инструменте позволившем выполнить работу быстро и качественно.
Так что в статье мы будем рассматривать пример использования Inno Setup, для которого имеется полезный фронтэнд Inno Script Studio, позволяющий выполнять создание простых инсталляторов с помощью мастера и менять настройки через GUI. GUI понадобился мне для первого знакомства, с продуктом, но мы не будем уделять ему большого внимания — мой «линукс головного мозга» в последнее время всё больше и больше уводит меня от желания использовать разного рода «мастера» (это субъективно, прошу не пинать). Мы рассмотрим хардкорный способ написания скрипта с чистого листа.
Думаю, что скачать программу с официального сайта и установить её труда не составит. Запускаем Inno Setup Compiler и видим такое окно
Пугающе уныло встречает нас Inno Setup.
Что это? По сути это просто-напросто редактор для набора скриптов, снабженный подсветкой синтаксиса и кнопками компиляции и запуска. От нас ждут, что мы начнем набирать в этом окне текст скрипта, определяющий логику работы будущего инсталлятора. Ну так и не будем терять время.
Прежде всего определим необходимые константы
Тело скрипта разделяется на секции, каждая из которых несет свое функциональное назначение. Обязательная секция [Setup] задает глобальные параметры работы инсталлятора и деинсталатора.
Пристальное внимание уделаем опции AddId — уникальный идентификатор приложения (GUID), используемый для регистрации приложения в реестре Windows. Его пишем не «от фонаря», а генерируем, открывая фигурную скобку, и выбрав в меню пункт Tools -> Generate GUID (или используя хот-кей Shift + Ctrl + G). Далее указываем имя приложения, под которым оно будет установлено в системе, его версию, данные фирмы разработчика, адреса сайтов разработчика, технической поддержки и обновления.
Путь, по умолчанию предлагаемый инсталлятором для установки определяем опцией DefaultDirName. При этом переменная — это путь в каталог Program Files соответствующей разрядности. Опция DefaultGroupName определяет имя группы программы в меню «Пуск». Обратите внимание на то, что для указания имени приложения мы используем данное нами выше макроопределение Name, обрамляя его фигурными скобками и решеткой.
Пара опций OutputDir и OutputBaseFileName задают каталог, куда будет записан скомпилированный «сетап» и его имя (без расширения). Кроме этого, указываем где взять иконку для test-setup.exe опцией SetupIconFile.
Последние опции в этой секции определяют алгоритм сжатия (LZMA) и указывают, что все файлы сжимаются одновременно, а не по отдельности (SolidCompression) что ускоряет процесс распаковки при большом количестве однотипных файлов.
В хорошем исталяторе должна быть поддержка нескольких языков. Включаем её в наш «сетап», используя опциональную секцию [Languages]. При отсутствии данной секции будет использоваться английский язык.
Каждая строка в данной секции задает один из используемых при установке языков. Синтаксис строки таков
Параметр LicenseFile задает путь к файлу с текстом лицензии на соответствующем языке.
Обычно установщик предлагает нам, например, определится, хотим мы или не хотим создать ярлык на рабочем столе. Такие опции установки определяются необязательной секцией [Tasks]
Здесь Name задает имя операции — «desktopicom» — создание иконки на рабочем столе; Description — описание чекбокса с опцией, которое увидит пользователь. Конструкция
Теперь укажем, какие файлы надо включить в дистрибутив и где их надо поместить при установке. Для этого используется обязательная секция [Files]
- Source — путь к файлу-источнику. У меня всё необходимое программе для работы лежит в каталоге Release проекта MS VS
- DestDir — каталог установки, переменная содержит путь, выбранный пользователем в окне установщика
- Flags — разнообразные флаги. В нашем примере для исполняемого файла: игнорирование версии программы при перезаписи исполняемого модуля, если он уже существует в системе (ignorevarsion); для остальных файлов и каталогов так же игнорируем версию, рекурсивно включаем все подкаталоги и файлы источника (recursesubdirs) и создаем подкаталоги, если их нет (createallsubdirs)
Наконец, чтобы всё было красиво, опционально укажем компилятору, где брать иконки для размещения в меню программ и на рабочем столе
Тут я указываю, что для группы в меню «Пуск» и для рабочего стола иконку надо брать из исполняемого модуля. Естественно, что иконка должна быть в него «вкомпилена», иначе в требуемых местах мы увидим стандартный значок из коллекции винды.
Итак, всё вроде готово. Жмем Ctrl + F9 и пытаемся собрать инсталлятор. Если не допущены синтаксические ошибки, начнется процесс сборки
Inno Setup собирает инсталлятор
После успешной сборки инсталлятор можно запустить, нажав F9. Если Вы работаете под учеткой с ограниченными правами (а я работаю в винде именно так), то придется полезть в каталог с результатами компиляции, который мы указали в скрипте, и запустить инсталлятор с правами админа
Запуск инсталлятора под ограниченной учетной записью
В итоге мы увидим до боли знакомое каждому пользователю Windows окно выбора языка
приветствие мастера
лицензионное соглашение
ну и так далее. Приятно, что по умолчанию используется лаконичный дизайн мастера, без рюшечек (которые при желании можно добавить)
Ну что сказать? Ура! Мы написали свой первый «сетап» и могли бы радоваться, но
- Определиться с тем, как будем получать дистрибутив фреймворка. Тут есть два варианта — поставлять его вместе с дистрибутивом программы или, при необходимости установки загрузить его онлайн на целевую машину. Мы остановимся на варианте включения фреймворка в дистрибутив. Сам фреймфорк, скажем версии 4.0, можно взять бесплатно у Майкрософта
- Детектировать наличие/отсутствие данного фреймфорка в целевой системе. Для этого потребуется написать логику, анализирующую состояние системного реестра.
Значения в реестре, которые необходимо проверить приведены в официальной документации Microsoft, в статье я приведу краткую выжимку из неё
хотя можно набить код и непосредственно в секции [Code]. Надо помнить, что внутри этой секции используется синтаксис Pascal, и комментарии предваряются последовательностью "//" вместо используемой в основной части скрипта точки с запятой.
Не смотря на обилие кода, логика его работы достаточно проста — в зависимости от значения параметра version с помощью функции RegQueryDWordValue(. ) читается значение соответствующего ключа реестра и сравнивается с требуемым значением (смотрим таблицу 1). Для версии 4.5 дополнительно передаем номер релиза в параметре release.
Для того, чтобы перед началом установки проверить наличие фреймворка и сообщить пользователю о предпринимаемых действиях используем Callback-функцию InitializeSetup()
Сам запуск инсталляции фрейворка можно выполнить после установки основной программы, поэтому включаем в скрипт секцию [Run], в которой указывается, что необходимо запускать по окончании установки
Обратите внимание на то, что мы сначала указываем имя секции [Run], чтобы закрыть секцию [Code], а затем пишем комментарий начинающийся с точки с запятой. Это необходимо из-за различия синтаксиса основного скрипта и секции [Code], в противном случае при компиляции мы получим синтаксическую ошибку.
Майкрософт просит нас принять лицензию.
Я не профессионал и во многих вещах могу ошибаться. Прошу отнестись к этому с пониманием. Статья писалась нубом для нубов, её основная цель — задать вектор поиска при решении задачи написания инсталлятора. За остальными вопросами можно обратится к документации, поставляемой вместе с Inno Setup.
Код данного примера доступен в моем репозитории на Github. «Кракозябры» в комментах вызваны несовпадением кирилических кодировок. Для себя всегда пишу английские комментарии, но для лучшего понимания кода допустил этот ляп. При скачивании в винде всё просматривается замечательно, так что прошу простить мне и эту несуразность.
В остальном, полагаю «хаутушка» вышла достойной и благодарю за уделенное мне внимание.
Разработка собственного программного обеспечения это одна задача, а установка его - это совсем другое. Как только Вы создали свой продукт, необходимо подумать о том, каким образом он будет предоставляться конечному пользователю. Если это просто один исполняемый файл, который вы можете просто заархивировать и выложить, то все просто. Но когда Ваш продукт состоит из нескольких файлов таких как, например, dll, которые необходимо зарегистрировать, Вам уже необходим инсталлятор. Даже если Вам просто необходимо создать пару ярлыков на компьютерах пользователей, то инсталлятор уже будет удобен, если Вы, конечно, не хотите, чтобы ваши пользователи делали все вручную.
Дорогой и коммерческий флагман InstallShield знаком всем, и Вы не раз пользовались инсталляторами, созданными этим продуктом. Но, он не является единственным оплотом для создания исталляторов. Существуют и достаточно способные бесплатные продукты, которые могут обеспечить Вас всеми необходимыми возможностями. Я выбрал несколько лучших из них. Они охватывают различные подходы к созданию инсталлятора: от быстрых и легко настраиваемых (5-10 минут и готово) до мощных и поддерживающих огромное количество настроек.
Обзор бесплатных программ для создания инсталляторов
Программа для создания инсталлятора Inno Setup полноценный инструмент
После просмотра нескольких других свободных продуктов в этой категории, я решил остановиться на Inno Setup как самой привлекательной. Этот инструмент не для пользователей, которые ищут простой работы с графическим редактором и быстрого результата. Это решение более подходящее для тех разработчиков, которые хотят полностью контролировать создание программы установки, и не стесняются работы с текстовыми файлами конфигурации. Inno Setup была выпущена в 1997 году и очень развилась с тех пор. Этот инструмент, безусловно, бьет многих коммерческих претендентов в этой области за счет множества возможностей и стабильности работы.
GUI Inno Setup представляет из себя редактор / компилятор для файла конфигурации, который содержит настройки для создания программы установки. Формат текстового файла очень похож на формат файла INI, что позволяет ему быть менее громоздким для работы, чем файл формата XML, как, например, в Ghost Installer. Файл справки отлично структурирован, что позволяет легко и просто узнать о доступных параметрах. Редактор поддерживает схему цветовой подсветки кода, что делает его более удобным для работы. Я не буду перечислять все особенности этого профессионального инструмента для создания программы установки, но я не нашел ничего, что еще Inno Setup не будет в состоянии совершить. Исходные файлы, целевые файлы, ярлыки, диалоги, лицензии принятии, удаление, пользовательские формы и многое другое. Я использовал его в течение нескольких проектов за последние годы с большим успехом (а не затрат). Если вы любите GUI, то для этого отличного инструмента вы можете найти несколько сторонних дополнений на главной странице InnoSetup.
Программа для создания инсталлятора NSIS удобная и мощная
NSIS - если Вам не особо то и нужен редактор сценариев, и Вы хотите что-то обладающее более расширенными возможностями пользовательского интерфейса, то инструмент от NullSoft для создания программ установки то, что Вам нужно. Это наиболее способный продукт, в котором правда не хватает полноценного пользовательского интерфейса (не считая окна компилятора).
Подобно тому как вы создаете HTML-код для веб-страницы в отдельной программе, и потом отображаете эту страницу в браузере, вы должны создать скрипт NSIS в любом редакторе по вашему вкусу и просто скомпилировать его компилятором NSIS. На домашней странице NSIS Вы можете найти ссылки на редакторы (PSPad, Notepad) и IDE плагины (например, для Eclipse) с поддержкой NSIS скриптов с подсветкой синтаксиса, а так же различные другие вспомогательные программы.
Этот продукт, безусловно, более ориентирован на профессиональных разработчиков, чем на тех, кто ищет быстрых и легких графических решений для создания программ установки. Продукты в данном обзоре рассматривают оба типа этих пользователей, и это создает небольшие трудности для рекомендации одного единого решения. Хотя NSIS более способный, чем InnoSetup, я выбрал последнее из-за его баланса между графическим интерфейсом и функциональностью (включая организацию обучения).
NSIS просто выводит одно маленькое окно с текстовыми ссылками, для того чтобы вы начали с изучения его бесконечных возможностей. Небольшое окно (действительно слишком маленькое, чтобы показать весь текст, но достаточное, чтобы не изменять размеры) содержит ссылки на сам компилятор, примеры скриптов, онлайн-поддержку, документацию и плагины.
Плагины действительно того стоят, они предлагают множество расширенных возможностей, например, эффекты fadeout/fadein для пользовательских диалогов. NSIS предлагает создание более современной установки UI. Вы можете самостоятельно создавать собственные иконки, баннеры, фоны, и сделать из них свой сборник. Сообщество пользователей достаточно велико и многие ресурсы и форумы помогут Вам и поддержат Вас с вашим проектом установки NSIS.
Программа для создания инсталлятора Ghost Installer аналог InnoSetup
Ghost Installer представляет собой аналог InnoSetup. Если Вы хотите полностью контролировать создание программы установки, и Вы не боитесь работать с XML-файлами конфигурации, то Ghost Installer может быть хорошим выбором для Вас. Хотя коммерческая версия инструмента поставляется вместе с графическим интерфейсом (Ghost Installer Studio), бесплатная версия просто предлагает так называемый gEditor для редактирования файлов XML файлов конфигурации.
Этот продукт требует времени, чтобы освоиться в нем, но как только Вы разберетесь и узнаете обо всех настройках, Вы сможете использовать всю мощь данного инструмента. Файл справки очень хорошо организован, в нем перечислены все ключевые слова и настройки, которые Вы можете использовать. Когда Вы создаете новый проект, мастер-настройки создаст базовый или расширенный шаблон, в котором будет подготовлена необходимая XML-структура, с который Вы можете сразу начать работать. Для меня этот инструмент был несколько сложнее в изучении, нежели InnoSetup, но я уверен, что этот инструмент очень мощный. В итоге мы имеем XML редактор gEditor со встроенной кнопкой, запускающей процесс компиляцию Вашей программы установки. Если для Вас такая схема работы привлекательна, то, безусловно, попробуйте его.
Программа для создания инсталлятора Clickteam Install Creator быстрая и удобная
Clickteam Install Creator, наверно, самый быстрый и удобный инструмент создания программ установки из тех, что я рассмотрел. Этот инструмент содержит основные функции, заключенные в эффективный графический интерфейс. Мастер достаточно быстро проведет Вас через основные шаги. Мой первый проект был сделан за несколько минут, и все работало на "ура!".
Можно устанавливать растровые изображения и иконки по своему выбору. В Install Creator отсутствуют более профессиональные функции, такие как добавление записей в реестр, различных пакетов установки или языков. Но это не было целью этого инструмента, и это прекрасно для простых задач. Это отличный выбор для быстрого решения по распространению своей программы, без необходимости разбираться в куче тонкостей процесса создания программ установки. Бесплатная версия полностью функциональна, однако, в конце каждой установки показывается окно с рекламой и со ссылкой на веб-сайт разработчиков.
CreateInstall аналог программы для создания инсталлятора Clickteam
CreateInstall это удовольствие для тех, кто не хочет тратить много времени на процедуру создания программ установки и редактирования кучи текста. Инструмент очень похож на Clickteam Install Creator, он так же представляет собой простой и эффективный интерфейс, где вы можете быстро найти и настроить все важные особенности вашего проекта. Вы можете выбрать пользовательские растровые изображения и иконку для диалога установки, а также указать фоновый градиент заливки для полноэкранного режима. Вы можете настроить шесть диалогов установки и один диалог завершения установки.
Работа с файлами и контекстным меню осуществляется достаточно легко, что является преимуществом над Install Creator. Так же Вам дается возможность задать записи в реестр и зарегистрировать DLL / OCX / TBL файлы. В инструменте есть некоторые дополнительные функции, которые производят достаточно хорошее впечатление. С ними Вы можете изменить некоторые особенности, такие как: выбор языка, выбор пути установки. Однако, у меня возникло несколько вопросов по работе инструмента, а именно по поводу изменения шрифтов диалогов. Для некоторых шрифтов, например, Tahoma, на дисплее будет просто пустое окно. Почему так? Бесплатная версия является полнофункциональной, но выводит строку "CreateInstall Free" в нижнем левом углу каждого окна установки. Вы можете купить этот инструмент, и изменить содержание этой строки по своему вкусу.
Программа Advanced Installer для быстрого создания инсталлятора
Advanced Installer является хорошим выбором, если Вам необходимо быстро создать MSI пакет установки. Caphyon предлагает бесплатную версию своего инструмента, встроенного в коммерческий продукт, по созданию программ установки. Вы можете скачать и установить полную версию продукта бесплатно, но только "Basic" опции работают без покупки регистрации. Но этого вполне достаточно для быстрого и простого создания MSI пакета установки.
В нем достаточно дружественный интерфейс, позволяющий Вам задать все основные конфигурации в кратчайшие сроки. Есть довольно много вариантов установки, что позволяет Вам достаточно легко играть с инструментом, например, целевая папка, ярлыки, перезагрузка системы, условия запуска, настройки реестра и многое другое. Единственно, я разочаровался в том, что нельзя определить различные типы установки такие, как "Полная установка" и "Минимальная установка". "Все или ничего" - не есть принцип сегодняшних программ установки. Я бы предпочел вместо опции условий запуска опцию установки типа. Тем не менее, мне очень импонирует простота в использовании и минимальное количество времени на проект. Если вам нужен MSI файл для простой установки, то Advanced Installer, безусловно, то, что Вам нужно.
Если вам нужно создать инсталлятор для программы, то вы попали именно туда куда нужно. MSI и другие инсталляторы доступны для создания с помощью программ в этом разделе.
Свободно распространяемая утилита для создания программ установки приложений Windows.
Утилита для создания установочных файлов (инсталляторов) для Widows
Гипертекстовое приложение, которое предназначено для установки выбранных пользователем программ.
Данное приложение может использоваться для создания и редактирования баз данных Windows Installer.
Setup Factory – это инструмент, который позволит создавать инсталляторы
Среда для PHP-разработчиков со множеством компонентов, необходимых для работы над проектами различной сложности.
Программа для создания самораспаковывающихся Zip-файлов.
Быстрый и надежный инструмент для создания файлов установки.
Приложение для создания инсталляционных пакетов под Windows.
Приложение, с помощью которого можно создавать простые инсталляторы всего за пару секунд.
Генератор исполняемых файлов для приложений, написанных на Java.
Программа для разработчиков и системных администраторов, которым необходимо создавать инсталляционные пакеты MSI.
Kirin - программа, предназначенная для "сборки" установочных пакетов MSI.
mInstaller – это программа, при помощи которой вы сможете создать установщик для Windows. В её возможности входит множество функций. Она позволяет создавать как инсталляторы, так и деинсталляторы.
Профессиональная система с открытым исходным кодом для создания программ-инсталяторов для Windows.
Wise Installation System – это одна из самых популярных и простых в использовании утилит для создания инсталляционных пакетов.
Бесплатный инструмент, который позволяет легко и быстро создавать MSI-инсталляторы.
Программа для создания инсталляционных пакетов .msi.
Программа, позволяющая создавать инсталляционные пакеты легко и просто.
Installer2Go - приложение для создания инсталляционных пакетов под Windows.
Программа для создания профессиональных установочных пакетов.
Setup Studio - продвинутая и полностью автоматизированная программа для инсталляции программ и операционной системы.
Программа InstallAnywhere Standard Edition предназначена для быстрого создания профессиональных мультиплатформных установкочных пакетов.
Инструмент для тех, кто работает в качестве системных администраторов и нуждается в создании собственных инсталляторов.
Smart Install Maker - программа, предназначенная для создания установочных пакетов.
InstEd - продвинутое средство для создания инсталляционных пакетов.
Программа, предназначенная для создания установочных пакетов приложений.
Создание инсталляторов для любой платформы Windows, включая 64-битные и Windows Mobile операционные системы, с полной настройкой всех действий инсталлятора и диалогами.
2005 - 2021 ©. Все права защищены. Перепечатка возможна только при условии размещения ссылки.
Ускоряет систему, реестр и доступ в Интернет. Оптимизирует, чистит и исправляет все проблемы с ПК в 1 клик. Выявляет и удаляет шпионские и рекламные модули.
Программа - победитель многих конкурсов. Подробнее
DeployMaster - программа позволяет создавать инсталляционные пакеты для вашего программного обеспечения под Windows.
get_app5 403 | Условно-бесплатная |
InstallAware - платформа для автоматического создания установочных пакетов в среде Visual Studio.
get_app2 144 | Бесплатная |
Это профессиональный инсталлятор программ который позволит Вам с легкостью создавать великолепные установочные программы для Ваших Windows приложений.
get_app13 522 | Условно-бесплатная |
Inno Setup - бесплатный инструмент для создания инсталляторов с большим количеством полезных функций. Позволяет определить все записи в файлах реестра и инициализации, задавать автозагрузку будущего приложения. Оснащает каждый дистрибутив деинсталлятором.
get_app74 900 | Бесплатная |
Утилита для обеспечения переносимости qt С++/C программ, которая позволяет извлекать все зависимые библиотеки исполняемого файла и создавать сценарии запуска для разрабатываемого приложения. Отличается гибкостью, высокой скоростью работы и кроссдеплоем.
get_app595 | Бесплатная |
CreateInstall Light является очень удобным инсталлятором и позволяет создавать установки с хорошим интерфейсом и со всеми наиболее важными возможностями.
get_app6 205 | Условно-бесплатная |
CreateInstall - универсальный, гибкий и мощный инсталлятор как для профессиональных разработчиков, так и для начинающих. С помощью этой программы Вы можете создать полнофункциональные инсталляционные программы для Ваших приложений.
get_app11 461 | Условно-бесплатная |
EMCO MSI Package Builder - отличный редактор для разработчиков программного обеспечения, предназначенный для легкого и быстрого создания пакетов MSI.
get_app1 438 | Условно-бесплатная |
Cameyo - отличное приложение для создания портативных версий любых программ и утилит.
get_app11 535 | Бесплатная |
Exe to MSI converter преобразует обычные инсталляторы .exe в MSI (Microsoft Software Installer) пакеты. Вы также можете создавать сценарии автоматической установки программ.
get_app10 835 | Демо версия |
Nullsoft Install System (NSIS) - программа предназначена для легкого и быстрого создания профессиональных инсталляционных файлов.
get_app16 698 | Бесплатная |
Free UPX - графический интерфейс для UPX (the Ultimate Packer for eXecutables). Позволяет сжимать и распаковывать файлы, производимые в соответствии с Microsoft Portable Executable и COFF Спецификации (EXE, DLL, OCX, BPL, CPL и др.).
get_app6 041 | Бесплатная |
UPX - бесплатный, портируемый упаковщик исполняемых файлов. Поддерживает множество форматов, включая COM, EXE, SYS. После упаковки UPX-ом Ваши файлы занимают минимум места на диске и распаковываются непосредственно в память при запуске программы.
get_app34 698 | Бесплатная |
ABTool - приложение для быстрой и комфортной установки пакетов часто используемых программ, а также запуска разнообразных утилит для диагностики характеристик компьютера.
get_app2 730 | Бесплатная |
McRip SystemFiles - инсталляционный пакет обновления самых необходимых программ и утилит, без которых невозможно полноценное функционирование системы.
Читайте также: