Inno setup приклади. Створення настановного дистрибутива програми

Частина 1

Знайомство користувача з програмою найчастіше починається із запуску інсталятора. Зовнішній вигляд («упаковка») та функціональність продукту визначається розробником. Користувачеві необхідно мати можливість проконтролювати процес, виставивши потрібні параметри установки. Для розробника важливо, щоб, як мінімум, його програма була встановлена ​​коректно, а інсталятор був сумісний з необхідними платформами.

Рішень до створення інсталяторів досить багато. Найчастіше використовується підсистема Windows Installer, яка вже входить до інструментарію операційної системи. Але є й альтернативні рішення - як платні, і безкоштовні, різної функціональності. Найчастіше з їх допомогою можна створювати пакети з інсталятором, який не залежить від Windows Installer.

Путівник включає всілякі системи для створення інсталяторів, основні аспекти їх огляду наступні:

  • Середовище розробки, інтерфейс, підтримка сценаріїв
  • Робота з проектом, типи створюваних пакетів, можливості імпорту проектів з інших середовищ розробки
  • Опції інсталятора: підтримка мов, профілів та інші опції
  • Підтримка розширень
NSIS (Nullsoft Scriptable Install System)

NSIS - безкоштовний та широко відомий інструментарій для створення інсталяційних пакетів у середовищі Windows. Відмінні риси - компактність, масштабованість, підтримка плагінів та локалізацій. З інших можливостей NSIS: підтримка сценаріїв, різних варіантів інсталяції (включаючи кілька проектів усередині одного інсталятора), створення веб-інсталяторів.

Дистрибутиви NSIS створюються з урахуванням сценаріїв. Змінні функції повністю контролюють як інсталяцію, так і деінсталяцію продукту. За допомогою скриптів можна додавати файли та директорії, вносити зміни до реєстру, редагувати текстові та двійкові файли, створювати патчі, керувати змінними середовищами і навіть звертатися до Windows API (за допомогою розширень).

Синтаксис мови NSIS досить простий та зручний для читання, основна документація до неї доступна. Більше того, у комплекті з програмою міститься велика кількість прикладів (файли формату nsi доступні у папці Examples). Для редагування nsi-сценаріїв придатний будь-який редактор коду, де без особливих зусиль можна ввімкнути підсвічування синтаксису. Багато завдань відразу уніфікується, якщо використовувати спеціальний плагін для IDE Eclipse, або . Venis є інтуїтивним візуальним середовищем для створення сценаріїв.

Зручно працювати з NSIS у зв'язці та з іншими програмами, наприклад (див. нижче).

Якщо виникла потреба розширити можливості інсталятора, можна додати певні функції. Плагіни пишуться C, C++, Delphi чи інших мовами. Готові приклади розширень доступні. Функції різноманітні: від візуальних ефектів інсталятора до створення патчів та звернення до Windows API.

Скомпілювати інсталятор можна за допомогою інструменту makensis, попередньо вибравши тип компресії - ZLib, BZip2 або LZMA. Крім того, сам по собі інсталятор займає небагато місця – всього 34 КБ.

Графічний інтерфейс інсталятора доступний в одному з двох варіантів виконання – Classic або Modern. Більш функціональний Modern (на даний момент використовується його версія 2.0) дозволяє створювати сторінки майстра установки з використанням тексту, шрифтів, зображень, діалогами, опціями та ін На цьому етапі допомогу надасть програма . Вона дозволяє швидко конструювати інтерфейс, а отриманий результат зберігати у форматі nsdinc, який потім нескладно інтегрувати в .nsi-скрипт.

Резюме. Середовище NSIS вже давно зарекомендувало себе, і на доказ - , які використовують її можливості. Нескладна мова сценаріїв, наявність усіх необхідних функцій, можливість розширення, доступність основних та додаткових інструментів - за рахунок цього NSIS становить сильну конкуренцію програмам у цій категорії.

Inno Setup

Inno Setup – безкоштовний інструментарій для створення інсталяторів на базі сценаріїв. Серед головних особливостей продукту - робота з усіма версіями ОС Windows (Windows 2000 і вище), розширена підтримка 64-бітних додатків, типи установки, що налаштовуються, вбудований препроцесор і потужна мова сценаріїв на основі Pascal.

Сценарії мають структуру, характерну для конфігураційних файлів ini-формату, тому код цілком добре читаємо і зручний у редагуванні. Документ поділено на секції, і кожна з них відповідає за певне завдання інсталятора відповідно. Усього є два типи секцій - з параметрами та «директива-значення».

Розробникам, знайомим із Pascal, буде на руку той факт, що Inno використовує «родинну» мову - . Сценарії відповідають за додавання нових опцій, створення інтерфейсу, виклик файлів або бібліотек, дії, що настроюються (custom actions) і т. д. У робочій папці Inno Setup знаходяться приклади скриптів (також доступні в меню компілятора). За замовчуванням Inno Setup містить компілятор сценаріїв Compiler IDE. Для швидкого старту рекомендується встановити Inno Script Studio. Цей редактор проектів входить до редакції QuickStart Pack, завантажити її можна. Для спрощення завдань може бути корисним візуальний редактор сценаріїв - .

Найпростіший варіант створення інсталятора – звернутися до покрокового майстра налаштування Inno Script Studio. Тут вказується інформація про продукт, координати програми, файл ліцензії та інші дані, мови локалізації, опції компілятора. Згодом проект доступний компіляції, налагодження чи модифікації отриманого сценарію у вікні редактора.

Редактор Inno Script Studio доступний російською мовою. Значно простіше налаштовувати проект послідовно, переходячи по секціям, а чи не створюючи сценарій з нуля. При додаванні нового елемента зміни вносяться до коду сценарію, синтаксис підсвічується, код відповідним чином розбитий на секції (, , …).

Розділи редактора не згруповані, але структура цілком впізнавана. Логічно їх можна розділити так:

  • Вміст дистрибутива: Файли, Каталоги, Іконки, Файли INI, Реєстр
  • Повідомлення та користувацькі повідомлення,
  • Опції користувача: Типи, Компоненти, Задачі, Мови
  • Дії: Виконати, Видалити перед встановленням, Виконати перед деінсталяцією, Видалити після деінсталяції
  • Код сценарію: Код Паскаля, Етапи передкомпіляції, Етапи посткомпіляції

Російська локалізація іноді вводить в оману, як завжди і з не дуже якісним перекладом.

З інших особливостей Inno Setup - тиха інсталяція та деінсталяція. Користувачеві доступні різні типи установки та локалізації на вибір. Інсталятор може бути зашифрований, містити цифровий підпис або захищений паролем. До дистрибутива може застосовуватися bzip2 або LZMA/LZMA2-компресія. Інтерфейс - у стилі 2000/XP, інших варіантів не передбачено.

Резюме. Inno Setup – найближча альтернатива NSIS. Дозволяє задіяти як потужну мову сценаріїв, так і зручний редактор Inno Script Studio, що гнучко налаштовується, доступний практично «з коробки».

IzPack

Найчастіше середовище розробки інсталятора закріплено за певною платформою, і розробник змушений використовувати різний інструментарій для кожної з них. IzPack вирішує питання кросплатформенності, використовуючи для своїх потреб універсальне середовище розробки Java.

Головні особливості IzPack: XML-синтаксис, інтеграція з різними інструментами компіляції, простий та гнучкий API-інтерфейс, можливість локалізації.

Серед особливостей інсталяторів, створених засобами IzPack, – невеликий розмір та модульність. В основі дистрибутива лежить XML-документ, де вказуються всі необхідні специфікації, що визначається функціональність продукту. Згодом файл конфігурації обробляється будь-яким зручним способом, для цього використовується командний рядок або . Для збільшення функціональності інсталятора можуть бути задіяні IDE середовища, такі як Eclipse, IntelliJ IDEA або Netbeans. Для складання конфігураційного файлу підійде будь-який редактор коду.

У XML-документі вказується інформація про проект (), інтерфейс (), локалізація (), файли (), ресурси (), панелі (), вміст (- може бути упаковано в raw, gzip, bzip2) та ін. Що стосується java , в IzPack є можливість застосування дій (custom acrions) та змінних - вбудованих, користувальницьких та змінних середовища (див. і ).

Для створення графічного інтерфейсу інсталятора призначені панелі. З їх допомогою визначається зовнішній вигляд, екран вітання, вміст, текстова інформація (readme, ліцензії), зображення. Підтримуються різні типи інтерактивних елементів (поля, перемикачі тощо), локалізація, включаючи російську. Перекладу піддається як інтерфейс, і зміст.

Для створення модулів, що саморозпаковуються, застосовується метод 7-Zip SFX, що використовує можливості відомого архіватора. Для Mac OS також доступна оболонка під назвою izpack2app. Крім того, є можливість створення веб-інсталятора, для цих цілей є оболонка izpack2jnlp, що використовує можливості Java Web Start. IzPack підтримує опцію тихої установки.

Резюме. IzPack – одна з небагатьох кросплатформових систем для створення інсталяторів. Процес написання конфігурації, компіляції та налагодження зручний за рахунок інтеграції з середовищами розробки, нескладний в освоєнні. З недоліків слід відзначити значно застарілий (і не оригінальний - native) вид інсталятора, що отримується.

Excelsior Installer

Excelsior Installer – безкоштовна програма, призначена для створення інсталяторів та оновлень. Основні особливості - проста інтуїтивна графічна оболонка, можливість інтеграції з Провідником та NSIS.

Створення дистрибутива чи оновлення здійснюється за допомогою пакувальника (Packager). Він містить покроковий майстер, що містить налаштування проекту. На основі проекту дуже просто скомпілювати восьмикроковий інсталятор. Згідно з описом, це робиться зовсім двома кліками миші, але в обов'язковому порядку в пакувальнику необхідно визначити наступні параметри:

  • Файли та папки програми, ярлики
  • Опис: назва компанії, назва продукту, версія продукту

Пакувальник складається з розділів Files (Файли), Settings (Параметри) та Appearance (Зовнішній вигляд). Загалом тут міститься стандартний перелік опцій, що відповідають за створення ліцензійної угоди, вибір інсталяційної директорії, ярликів, ключів реєстру та інші параметри. Якщо вивчити продукти, легко виявити наступний функціональний «пробіл»: інсталятор не підтримує файлові асоціації, DLL-розширення, елементи керування.

Що стосується доступних опцій інсталятора - можна вказати профіль установки залежно від привілеїв поточного користувача. Інсталятор підтримує локалізацію, причому російська мова доступна «з коробки», решта завантажується окремо. Можлива автоматична - тиха - інсталяція без запиту даних у користувача, після встановлення - перевірка цілісності пакета або інші дії, що настроюються.

Як вже згадувалося, можлива інтеграція Excelsior з NSIS. Excelsior Installer, по суті, є повноцінним GUI для NSIS, налаштування проекту експортуються без проблем.

Поряд із цим учасником огляду, варто виділити ще один родинний продукт - Excelsior Delivery. Здебільшого функції Excelsior Installer дублюються. Але є також кілька додаткових функцій: додавання до системи OLE- і ActiveX-елементів, файлових асоціацій, бібліотек, створення опитувань користувачів. Ліцензійна версія Excelsior Delivery (ціною $99) дозволяє також застосувати до установника фірмове оформлення (branding). Якщо ця опція не має значення, можна завантажити некомерційну версію програми.

Резюме. Excelsior Installer - проста та дуже зрозуміла система для створення дистрибутивів, може використовуватися як надбудова до NSIS. Зворотний бік медалі - усереднена функціональність як Excelsior Installer, і Delivery.

WiX Toolset

WiX (Windows Installer XML) – безкоштовний набір інструментів для створення інсталяторів (Windows Installer) з використанням специфікації XML. З особливостей: інтерфейс командного рядка, інтеграція з IDE, автоматизація процесів, базова підтримка і розширена підтримка Windows Installer.

Ядро WiX складають компілятор (candle), компонувальник (light), бібліотекар (lit), декомпілятор (dark), бутстрапер інсталяції (burn) та інші утиліти. За допомогою їх можна створювати пакети інсталяції.msi, модулі злиття.msm, патчів.msp.

Створення інсталятора складається з кількох основних етапів: розробка сценарію, його перевірка, обробка препроцесором, компіляція та компонування. Для складання інсталятора та автоматизації загалом використовується платформа MSBuild. Автоматизація - одна з головних переваг WiX під час роботи з досить ресурсомісткими проектами.

Початковий код має формат XML (розширення файлу wxs). Сценарій описує всі етапи установки, починаючи з опису проекту, закінчуючи діями після встановлення. Редагувати його можна в будь-якому редакторі за допомогою цього формату.

WiX радує своїми інтеграційними можливостями: WiX Toolset надає інтерфейс командного рядка. Для роботи з проектом Visual Studio (модуль IntelliSense) потрібно розширення .

У скрутних ситуаціях або за відсутності часу вивчення сценаріїв, хорошу службу надасть графічна оболонка . Її основні переваги - імпорт існуючих wxs-проектів, структурування xml-даних із зручним читанням та навігацією. За допомогою майстра також нескладно створити інсталяційний файл із нуля. Причому це не єдиний подібний інструмент (див. ).

Резюме. У цьому випадку багато що вирішує специфікація XML. WiX дає можливість програмістам оперувати вихідними даними, не вдаючись до графічної оболонки. До складу WiX входять всі необхідні інструменти, до того ж функціональність інсталятора може бути покращена за рахунок розширень.


InstallShield є середовищем для налаштування проекту, створення сценарію і кінцевого релізу дистрибутива - як в MSI-, так і в різних віртуальних форматах. Це одне з найвідоміших рішень щодо створення інсталяторів для платформи Windows. Існує три редакції комплексу – Express, Professional та Premier. Остання їх вважається найбільш функціональної (див. ). Нещодавно був випущений оновлений пакет InstallShield 2014, про який далі йтиметься.

Проекти можуть бути імпортовані з Microsoft Visual Studio або створені на основі наявних шаблонів. При створенні проекту з нуля на вибір доступний один із кількох типів:

  • Базовий MSI-проект – використовується технологія Windows Installer, доступний виклик InstallScript-, VBScript-, Jscript-скриптів, exe- та dll-файлів.
  • Проект InstallScript - InstallScript використовується для контролю установки
  • InstallScript MSI-проект – спільне використання Windows Installer та InstallScript для розгортання установки.

У свою чергу, для кожного із зазначених типів є безліч додаткових проектів. Загалом, крім інсталяторів, комплекс дозволяє створювати модулі об'єднання (Redistributable), і навіть модифікатори (Transform).

Є кілька варіантів початку роботи в InstallShield, один з них – скористатися покроковим майстром налаштування (Project Assistent), який запускається автоматично під час створення нового проекту. Більш детальна конфігурація здійснюється у вікні дизайнера установки. Налаштування згруповані таким чином:

  • Інформація про встановлення (Installation Information) – таблиця із загальною інформацією про проект. Тут, зокрема, можна вибрати мову інсталятора за промовчанням. Усього InstallShield підтримує понад 30 локалізацій.
  • Organization (Організація) - включає дизайн установника, список функцій і компонентів, які будуть представлені користувачеві на вибір при установці.
  • Application Data (Дані програми) - дані програми, такі як файли, модулі та залежності. Частина компонентів може бути встановлена ​​локально, інші необхідно завантажувати під час встановлення.
  • System Configuration (Системна конфігурація): ярлики, ресурси, конфігураційні файли, послуги та ін.
  • Server Configuration - конфігурація сервера відповідно до вимог інсталятора. Сюди входять налаштування IIS, сервіси компонентів, SQL-скрипти для SQL Server, Microsoft Windows Azure, MySQL або Oracle. Використовуючи Microsoft Web Deploy, можна завантажувати залежність, запускати скрипти, виконувати завдання на сервері.
  • Behavior and logic (Поведінка та логіка) - скрипти, дії, файли для інсталяції та ін.
  • User Interface (Інтерфейс користувача) - дизайн інсталятора, включаючи оформлення діалогів, зображення, текст та інші дані. На вибір доступні теми оформлення, дуже гнучке налаштування наявних діалогів аж до перетягування кожного елемента. Порядковий редактор дозволяє працювати з локалізаціями.
  • Media - управління змінними оточення, налаштування оновлень та релізів продукту, патчі.
  • Додаткові інструменти (Additional Tools): сканер файлових залежностей, MSI-налагоджувач та прямий редактор, призначений для перегляду структури проекту у вигляді таблиці.

Як скриптова мова для створення інсталяторів виступає InstallScript, що має схожість з мовою C і дозволяє створювати дії користувача (Custom Actions). Тим самим, скрипти допомагають при виклику dll-бібліотек, запуску додатків, VBScript-, Jscript-, InstallScript-скриптів та багато інших. ін.

Для редагування коду в InstallShield використовується редактор з підсвічуванням синтаксису та автодоповненням. Крім того, для створення дій може використовуватися майстер дій користувача (Custom Action Wizard).

Резюме. Безперечно, InstallShield є одним з провідних продуктів на ринку інсталяційних комплексів. Його найбільша сильна сторона полягає в гнучкості, що дозволяє створювати численні типи інсталяторів для розгортання на комп'ютері або сервері з підтримкою сценаріїв. Від домашнього використання може відлякати досить висока ціна ліцензії для кожної з редакцій, починаючи з InstallShield Express ($649).

Setup Factory


Компанія Indigo Rose Software Design випускає продукти розробки, починаючи з 1991 року. Серед них – MSI Factory, TrueUpdate, Visual Patch та суміжні рішення. Setup Factory – ще один комплекс, що дозволяє створювати повнофункціональні скриптові інсталятори – але, на відміну від MSI Factory, незалежні від MSI. При цьому отриманий дистрибутив може бути запущений за будь-якої версії Windows, починаючи з XP. Доступні альтернативні варіанти поширення - установка з CD- або DVD-носія, веб-інсталятор з можливістю завантаження залежностей. Підтримуються формати компресії LZMA/LZMA2 та файли розміром понад 2 ГБ.

Інсталяційне середовище Setup Factory використовує просту, гнучку та потужну скриптову мову, засновану на мові LUA. Це дозволяє використовувати умови, функції, змінні, таблиці та інші засоби при написанні сценарію.

Для створення інсталятора передбачено традиційний покроковий майстер. Він складається з наступних етапів роботи з проектом: заповнення загальної інформації про інсталятора, вибір архітектури, розташування файлів, стилю та теми оформлення, мов встановлення, склад бібліотек.

Як варіант, можна відразу ж перейти до самостійного настроювання проекту установника, для цих завдань надається простий інтерфейс редактора. У лівій колонці вікна програми доступний список завдань, він розбитий на секції: файли, налаштування, візуальні опції, дії, ресурси та деінсталяція.

Керування скриптами здійснюється через секцію Actions. Всі дії діляться на кілька етапів, у хронологічному порядку: запуск, процес встановлення та виникнення помилок на даному етапі, закінчення встановлення та завершення роботи.

Для складання дій (actions), користувачам надані надбудови Action Wizard та Code Wizard. Усього доступно близько 360 скриптів, при цьому кожна дія ретельно задокументована у добре структурованій довідці. Паралельно з цим основна робота з кодом ведеться у вікні редактора. Підсвічування коду та нумерація рядків у наявності, для перевірки сценарію на помилки можна використовувати вбудовані засоби Setup Factory.

Функціональність інсталятора розширюється з допомогою ресурсів. У відповідному розділі Resources можна вказати залежності (.NET, Visual Basic, DCOM, JET, MDAC, Windows Installer, Visual C++ та ін.), встановити глобальні функції та підключити плагіни для роботи з буфером обміну, архівами, FTP. Крім того, на форумі розробника викладено додаткові розширення.

Зручність редактора проектів помітна при роботі з локалізаціями: можна не лише додати мову інтерфейсу, а й імпортувати або експортувати дані до XML. Кожен аспект інсталятора піддається налаштуванню та доступний у режимі перегляду: діалоги, підписи до кнопок, форматування тексту, шрифти та багато інших. ін Зовнішній вигляд змінюється за допомогою встановлених тем. Причому використовуються як «рідні» стилі (Windows 7, Windows 8 та інших.), а й різні MSStyles-модифікації, які можна завантажити окремо.

Насамкінець варто відзначити такий аспект Setup Factory, як безпека. Установка може бути обмежена за допомогою серійного номера, всі ключі зберігаються у MD5-хеш. Під час інсталяції проводиться перевірка безпеки даних, термін придатності дистрибутива.

Резюме. Setup Factory дозволяє використовувати широкі скриптові можливості мови LUA. Всі дії добре документовані, користувач може використовувати майстер налаштування на різних етапах роботи, починаючи створенням та закінчуючи публікацією проекту. Функціональність інсталятора може бути розширена завдяки додаткам. Ретельно налаштовується інтерфейс установника, зручна робота з локалізаціями.

SetupBuilder

SetupBuilder відноситься до інструментів для швидкої розробки та налаштування програм. З його допомогою можна створювати скриптові інсталятори з компактним ядром розміром 160 КБ. Це можуть бути веб-диски, CD/DVD-дистрибутиви, що працюють під будь-якою ОС Windows 9.x і вище. Серед ключових особливостей SetupBuilder є сертифікована підтримка Windows 8 і Windows Server 2012 - що гарантує сумісність і коректність установки.

Слід зазначити, що є дві редакції програми на вибір: для розробників (Developer) та професійна версія (Professional). Перелік можливостей є суттєвим між цими редакціями, з тією особливістю, що більш функціональна SetupBuilder Developer. Вона включає графічний редактор діалогів, відладчик, компілятор, генератор оновлень та інші компоненти.

Створюючи проект із нуля, можна скористатися майстром, проте він, по суті, мало що вирішує. Редактор проектів складається з наступних розділів: Project Definition (Властивості проекту), Installation Details (Налаштування), Setup Appearance (Зовнішній вигляд), Setup Requirements (Залежності) та Script Logic (Сценарій).

Project Definition – налаштування загальної інформації, змінних, профілів установки. Слід зазначити підрозділ Web-deployment (Веб-розгортання), де можна активувати функції веб-оновлення або веб-інсталяції продукту. Також, один проект може включати кілька версій програми (Releases).

Installation Details - Визначення вмісту інсталятора, включаючи файли, папки, ключі реєстру, сервіси, драйвери, змінні оточення та інші елементи.

Setup Appearance – налаштування оформлення. Для визначення зовнішнього вигляду інсталятора – включаючи діалоги, текстовий зміст, кнопки, поля тощо – використовується візуальний редактор. Інші настройки, такі як локалізація та стиль інсталятора, вказуються окремо у налаштуваннях проекту (Project – Settings).

Setup Requirements – перевірка залежностей, прав доступу, системних та інших файлів.

Script Logic – доступ до сценарію інсталятора. Для роботи зі скриптами використовується власне IDE-середовище, також є вбудований візуальний дебаггер. У SetupBuilder задіяна скриптова мова SetupScript, і, у випадку з редакцією Developer, додається близько 500 встановлених функцій. Крім використання SetupScript, під час інсталяції можна звернутися до Windows API або підключити необхідні DLL-бібліотеки.

За безпеку відповідає функція SetupProtect, доступна у SetupBuilder Developer. Вона дозволяє використовувати серійні номери та ключі передплати на певний період роботи. Крім того, доступний цифровий підпис дистрибутива.

Резюме. SetupBuilder дозволяє створювати інсталятори, веб-інсталятори та оновлення, використовуючи скрипти та можливості Windows API. З найбільш примітних сторін даного комплексу – тісна підтримка Windows, візуальне редагування та налагодження проекту, багатомовність та захист від несанкціонованого використання.

Visual Installer 2014

Visual Installer - комплекс для створення windows-інсталяторів у візуальному режимі та за підтримки сценаріїв. Створювані дистрибутиви можуть поширюватися на CD/DVD-, USB-носіях і через інтернет, у вигляді архівів, що саморозпаковуються.

Є дві версії Visual Installer – стандартна та професійна. В останньому випадку до складу додатково включені менеджер проектів і SamLogic Selector - утиліта для визначення системних залежностей при запуску. Крім того, професійна версія дозволяє працювати з 64-бітними програмами та передбачає роботу зі сценаріями.

Спочатку Visual Installer пропонує вказати формат розповсюдження дистрибутива та встановити базові налаштування. Як варіант, можна імпортувати в програму наявні проекти із середовищ Visual Studio/Visual Basic і продовжити роботу, ґрунтуючись на існуючому проекті.

Далі робота здійснюється у редакторі. У нижній його частині є вкладки для навігації між розділами. У розділах File list, Registry, INI Files та Components визначається структура інсталятора, включаючи файли, директорії, ключі реєстру та інші компоненти. Окремо можна виділити візуальну складову. Так, при налаштуванні майстра установки надається вибір діалогів (вкладка Dialog Boxes): введення ключа ліцензії, вибір компонентів, текст ліцензії тощо. Дизайн установника визначається у відповідній вкладці Design: це колір, фон, шрифти, зображення та звук.

Додаткові налаштування інсталятора доступні в розділі меню Specials. Тут можна вказати залежності (версія операційної системи і Net Framework), без яких установка буде неможлива. Також доступні такі опції інсталятора як тихе встановлення, цифровий підпис і парольний захист.

Visual Installer передбачає створення багатомовних дистрибутивів. Керувати локалізаціями, в порівнянні з іншими інсталяційними комплексами, не дуже зручно: всі файли зберігаються в форматі LNG у зовнішньому файлі, який необхідно редагувати вручну в текстовому редакторі.

Сценарії, доступні в Pro-версії, можуть бути задіяні перед встановленням та після завершення. Скриптова мова дозволяє використовувати змінні та команди, описані в довіднику, керувати процесом створення файлів, папок, ярликів, інших компонентів, запускати зовнішні MSI та інші програми. Для редагування сценаріїв використовується простий редактор із підтримкою автодоповнення IntelliSense.

Насамкінець, потрібно відзначити наступний момент: у діалогах некоректно відображається кодування і не всі активні кнопки спрацьовують при натисканні. Ця проблема спостерігається у Windows 8.

Резюме. Досить простий і дещо застарілий інсталяційний комплекс, де доступні сценарії та візуальний редактор проектів. Усі налаштування здійснюються на основі заготовок, змінити порядок встановлення не можна.

Зведена таблиця
додатокNSIS (Nullsoft Scriptable Install System)Inno SetupIzPackExcelsior InstallerWiX ToolsetClickteam Install CreatorActual InstallerCreateIntallAdvanced InstallerInstallBuilderInstallMateInstallShieldSetup FactorySetupBuilderVisual Installer
РозробникNullsoftJordan Russell, Martijn LaanJulien Ponge та ін.ExcelsiorMicrosoftClickteamSofteza DevelopmentNovostrimCaphyon LTDBitRockTarma Software ResearchFlexera SoftwareIndigo RoseLindersoftSamLogic
ПлатформаWindows, POSIXWindowsWindows, Linux, MacOS +WindowsWindowsWindowsWindowsWindowsWindowsWindows, Linux, Mac OS +WindowsWindowsWindowsWindowsWindows
Цінабезкоштовнобезкоштовнобезкоштовнобезкоштовнобезкоштовно€49,00 / €119,00 (Pro)$89 безкоштовно (Free) / 2000 руб. (повна версія)від $399від $995від $89від $649 $395 $299 (Developer) / $169 (Pro) $129
Мова сценаріївNSISInno Setup Script, PascalJavaWindows InstallerGenteeVBScript, JscriptJava, PHP, Perl, Python, Ruby, C/C++, .NET/MonoVBScript, Jscript, PowerShellInstallScript, PowerShellLUASetupScriptVisual Installer
Тип установникаEXEEXEJAREXEMSIEXEEXEEXEEXE, MSI, JAREXEEXE, MSIEXE, MSIEXEEXE, MSIEXE
Редактор проектів+ (Надбудови)+ (Надбудови)+ (Надбудови)+ + (Надбудови)+ + + + + + + + + +
Імпорт проектівEclipse, IntelliJ IDEA, Netbeans, Apache AntNSISVisual StudioVisual Studio, Eclipse, Visual Basic та ін.Visual Studio, Visual Basic та ін.Visual Studio, Windows Installer та ін.Visual Basic, .NET, Windows Installer та ін..NETVisual Studio, Visual Basic
Мультимовність+ + + + + + + + + + + + + +
Типи компресіїZLib, BZip2, LZMABZip2, LZMA/LZMA2raw, gzip, bzip2, 7-Zip SFXне вказаноMSZIPzipper/ differentiatorне вказаноCAB, 7-ZipLZMALZMALZMA/LZMA2ZlibLZMA/LZMA2LSZipZIP
Серійний номер / парольний захист+ + + (Pro)+ + + + + + + +
Вибір компонентів під час встановлення+ + + + + + + + +
"Тиха установка+ + + + + + + + + + + + + +
Командна строка+ + + + + + + + + + + + + +
Розширення+ + + + + + + + +

Більшість користувачів, які не особливо знайомі з комп'ютером, цікавляться, що являє собою Setup та які його функції. Деколи відповісти на це питання досить просто. Однак у багатьох випадках із цим компонентом пов'язано багато проблем на комп'ютері.


Таким чином, слід розібратися, що таке Setup і зрозуміти, що робити, якщо виникли проблеми з цим файлом. Це не так вже й складно, як може здатися на перший погляд.

Мовні норми

Насамперед необхідно зрозуміти, що це переклад слова. Досить часто саме він надає допомогу користувачеві, дає можливість вникнути у зміст операції. Що таке Setup? Щоб отримати відповідь на це запитання, слід звернутися до англійського словника. Це слово у перекладі означає «установка» (іменник) або «встановлювати» (дієслово). Іншими словами, щось виконує встановлення на комп'ютер. Варто зазначити, що без цього компонента важко уявити роботу операційної системи. Невже програма Setup така важлива? Це слід з'ясувати. Особливо коли комп'ютер систематично видає різні помилки.

Що таке Setup?

Крім головного перекладу, існують ще й комп'ютерне трактування цієї програми. Вона найзрозуміліша для сучасних користувачів. Варто зазначити, що «Сетап» означає програму, призначену для встановлення чогось. Основним її компонентом є Setup.exe. Іншими словами, це файл інсталяції або виконуваний. Те, що здійснюється на комп'ютері після запуску. Чим характеризується Setup? Наприклад, можна назвати серед виконуваних документів різні програми, ігри (їх установку), запуск налаштувань. Також існує Bios Setup. Це найменування налаштувань, які дозволяють працювати з комп'ютером. Інакше кажучи, із популярним усім «Біосом».

Неможливо уявити комп'ютер без «Сетапу». Коли даних файлів немає, користувач зможе виконувати різні команди. Неможливо буде і встановлювати контент та програми. Setup.exe є у кожному додатку чи грі. Він допомагає запустити програму установки, яка дозволяє оперативно поставити потрібний контент в операційну систему. Щоб активувати цю функцію, необхідно двічі натиснути на файл, що виконується.

Правила звернення

Варто зазначити, що файл Setup.exe потребує особливого звернення. Особливо, коли йдеться про встановлення гри, яка завантажена з інтернету. Слід розібратися, що ж допомагає у цій непростій справі. Спочатку необхідно просто закрити всі сторонні програми, щоб уникнути можливих збоїв. Далі можна переходити в папку, що містить файл, що виконується. Для запуску потрібно двічі клікнути по Setup.exe. При встановленій операційній системі Windows 7 і вище, у користувача комп'ютер запитає дозвіл початку процесу. На екрані з'явиться вікно з головною інформацією про виробника-виробника, а також про розташування документа. Там знадобиться відповісти «Так», щоб виконати запуск, або «Ні», щоб скасувати встановлення чогось.

Коли буде виконано підтвердження, з'явиться вікно з простою навігацією. Спочатку система привітає користувача та сповістить, що встановлюватиметься. Потім потрібно дотримуватися всіх вказівок в «Інсталяторі» та завершити процес. Після цього буде встановлено певну програму. Дуже важливо ніколи не переміщати Setup.exe із кореневої папки контенту. Також не рекомендується видаляти його і видаляти його навіть після встановлення на комп'ютер. Це може стати причиною відмови додатків від роботи. Варто зазначити, що «Сетап» є ще й програмою, яка потрібна не тільки для встановлення чого-небудь, а також для запуску. Всі ярлики, що містяться на робочому столі, які беруть участь в активації програм, мають адресу з розширенням «exe».

Процес

Серед процесів, що виконуються, можна іноді виявити «Сетап». Варто зазначити, що деякі користувачі насторожуються при цьому. Setup працює і стежить за процесами, що виконуються і запускаються. Таким чином, він виконує функції деякого фільтра. Якщо його вимкнути, робота операційної системи стає неконтрольованою. Іншими словами, неможливо нормально встановлювати та запускати програми та ігри. Тому не потрібно намагатися займатися цією самодіяльністю. Іноді цей процес займає багато комп'ютерних ресурсів.

Вірус

Допустимо, безпечний раніше «Сетап» здатний стати справжнім вірусом. У цьому випадку він може знаходитися десь в операційній системі і шифруватися під звичайний файл. Така комп'ютерна зараза найчастіше прикріплюється до додатків, у яких найбільше виникає потреба. Вірус активується постійно після запуску потрібної програми. Варто зазначити, що антивірус не завжди здатний впоратися із проблемою. Спочатку виявити вірус, замаскований під «Setup.exe», досить важко. Якщо є підозри, що комп'ютер заражений, доведеться закрити всі програми, а також перевірити систему на наявність зарази. У цій ситуації допоможе прийде антивірус. Добре справляються з «Сетапом» такі програми:

Avast;
Nod32;
Dr.Web.

У разі, коли під час сканування підтвердилися побоювання, не потрібно поспішати видаляти загрозу. Необхідно пам'ятати, що після цього не вийде запускати програму, де був вірус. Щоб здійснити ефективне та правильне лікування комп'ютера, потрібно звернутися за допомогою до фахівців сервісного центру. Вони знайдуть і знешкодять загрозу, не завдавши шкоди файлам та документам користувача.

Шпигун

Існує ще один досить поширений варіант розвитку подій. Йдеться про наявність на комп'ютері спеціального шпигуна. Він здатний шифруватися у таких процесах, як Setup. Ця зараза призначена для виявлення та розкрадання особистих даних користувачів. Наприклад, адрес та електронної пошти, номерів банківських карток, логінів та паролів від сторінок та інше. Варто зазначити, що не дуже приємно виявити на комп'ютері шпигуна, особливо коли він зашифрований під Setup.exe.

Використовувати антивірус у разі не завжди ефективно. Потрібно додатково завантажити та встановити спеціальну програму-антишпигун. Наприклад, SpyHunter. Вона перебуває у вільному доступі та проста у використанні. Необхідно запустити програму, а потім розпочати перевірку. Коли буде отримано результати, можна сміливо видаляти погрози. Не слід забувати і про відвідування диспетчера завдань і після цього завершити процес Setup.exe. Далі варто перезавантажувати комп'ютер. "Сетап" знову опиниться в диспетчері, проте лякатися його також не варто.

Таким чином, у статті було розібрано питання, що є Setup. Як можна побачити, що це дуже важливий файл. Іноді він може принести багато проблем. Щоб уникнути неприємностей, слід просто дивитися, що встановлюється на комп'ютер і завантажується. Рекомендується завжди запускати тільки ті процеси, які заслуговують на довіру.

Для зручності встановлення програм на комп'ютери користувачів вам знадобиться створення дистрибутива. Сьогодні я хочу розповісти про дуже потужний і безкоштовний інструмент для створення дистрибутивів для Windows – Inno Setup.

Про Inno Setup

Inno Setup, що з'явився в 1997 році, сьогодні змагається з платними інсталяторами і навіть перевершує багато з них за кількістю функцій і стабільності. Домашня сторінка проекту знаходиться.

Ось ключові можливості інсталятора:

      • Підтримка всіх версій Windows, починаючи з Windows 2000, включаючи: Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008, Windows XP, Windows Server 2003 та Windows 2000. При цьому жодні пакети оновлень не потрібні.
      • Широка підтримка для встановлення 64-розрядних програм на 64-розрядні версії Windows . Підтримка архітектур x64 and Itanium (якщо використовується Windows Server 2003 на Itanium архітектурі, то потрібний пакет оновлень 1 або пізніший для встановлення 64-бітного режиму роботи).
      • Можливість створення дистрибутива, що складається з єдиного EXE-файлу для зручного поширення в Інтернеті. Розбиття на диски також підтримується.
      • Стандартний інтерфейс майстра установки у стилі Windows 2000/XP.
      • Типи установки, що настроюються, такі як Повна , Компактна , Вибіркова .
      • Широкі можливості деінсталяції.
      • Встановлення файлів: Включає інтегровану підтримку стиснення deflate, bzip2 та 7-Zip LZMA/LZMA2. Інсталятор може порівнювати версії файлів, замінювати використовувані файли, використовувати підрахунок загальних файлів, реєструвати DLL/OCX та бібліотеки типів та встановлювати шрифти.
      • Створення ярликів у будь-якому місці, включаючи меню Пуск та робочий стіл.
      • Створення елементів реєстру та INI-файлів.
      • Виконання інших програм до, під час та після встановлення.
      • Створення багатомовних дистрибутивів, включаючи мови з написанням зліва направо.
      • Створення запаролених та зашифрованих дистрибутивів.
      • Підтримка цифрового підпису під час встановлення та видалення.
      • Прихована установка та видалення.
      • Підтримка Unicode.
      • Вбудований препроцесор для додаткового налаштування під час компіляції.
      • Вбудований обробник скриптів Pascal для виконання додаткових дій під час встановлення та видалення.
      • Вільний вихідний код (Borland Delphi 2.0-5.0 та 2009).

Великим плюсом Inno Setup є те, що його можна використати абсолютно безкоштовно навіть для комерційного використання. Хоча як подяка або для підтримки інсталятора ви можете зробити пожертвування. Там є список усіх, хто пожертвував від 100 доларів.

Ось як виглядає стартова сторінка стандартного майстра установки дистрибутива створеного за допомогою Inno Setup.

Про створення дистрибутива в Inno Setup

Створення дистрибутива за допомогою Inno Setup відбувається так:

1. Спочатку ви створюєте скрипт Inno Setup. Скрипт Inno Setup – це текстовий файл з розширенням .iss , який містить властивості дистрибутива та набір дій, що виконуються при установці та видаленні. Скрипт може бути створений за допомогою стандартного редактора Inno Setup (див. картинку) або за допомогою одного із сторонніх редакторів, таких як Inno Script Studio або ISTool. У цій статті я розгляну використання лише стандартного редактора Inno Setup.

2. Потім компілюєте скрипт, отримуючи при цьому дистрибутив.
3. Після компіляції ви можете тестувати та налагоджувати отриманий дистрибутив, виконуючи інсталяцію та деінсталяцію.

Установка Inno Setup

Щоб створювати дистрибутиви за допомогою Inno Setup, достатньо встановити компілятор Inno Setup до себе на комп'ютер. Дистрибутив можна завантажити. Посилання на завантаження останньої стабільної версії ви можете знайти у секції Stable Release. На момент написання статті остання версія Inno Setup була 5.5.5, див. картинку. Щоб завантажити дистрибутив, натисніть на посилання "Random site" навпроти версії з підтримкою Unicode (файл isetup-5.5.5-unicode.exe) або без неї (ANSI версія - файл isetup-5.5.5.exe). Для уникнення проблем з відображенням кирилиці краще відразу використовувати Unicode-варіант Inno Setup.

Якщо ви збираєтеся шифрувати свій майбутній дистрибутив, то модуль для шифрування ISCrypt.dll вам потрібно завантажити окремо в секції Encryption Module, див. картинку (нижче ви бачите посилання на вихідні коди цього модуля – ISCrypt.zip).

На цій же сторінці в розділі QuickStart Pack ви можете знайти посилання на дистрибутиви ispack-5.5.5.exe та ispack-5.5.5-unicode.exe для встановлення Inno Setup разом з Inno Script Studio , див. картинку. Inno Script Studio – це розробка сторонньої компанії (Kymoto Solutions), яка пропонує вам свій зручний інтерфейс користувача і надає можливість налагодження вашого інсталятора під час виконання. Також, цей дистрибутив запропонує завантажити та встановити модуль шифрування ISCrypt.dll автоматично.

Крім всього перерахованого, на сторінці завантаження є секції Beta Release , для завантаження бета версій Inno Setu p, і для завантаження вихідних кодів, на яких я не буду загострювати увагу.

Якщо ви збираєтеся користуватися більш сучасними редакторами скрипту Inno Setup , то вам також буде цікава сторінка Inno Setup Third-Party Files зі списком розробок сторонніх компаній. Ось які сторонні розробки ми можемо використовувати спільно з Inno Setup:

      • Inno Script Studio – інтерфейс користувача і відладчик. Встановлюється за допомогою дистрибутива QuickStart Pack (див. вище) або окремим дистрибутивом, який можна завантажити з сайту розробника. Є русифікація.

      • Visual & Installer - платний плагін для Visual Studio (підтримуються Visual Studio 2005, 2008, 2010, 2012 та 2013) для створення дистрибутивів за допомогою Inno Setup. Також Visual & Installer містить майстер Graphical Installer Wizard, що дозволяє створювати тематично оформлені дистрибутиви (див. Приклади).

    • Inno Download Plugin – бібліотека та скрипт Inno Setup , що дає можливість завантажувати файли в процесі встановлення вашого дистрибутива. Є підтримка російської. Підтримуються протоколи FTP, HTTP та HTTPS.

      • InnoTools Downloader – ще один варіант, схожий на Inno Download Plugin, також для завантаження файлів під час встановлення. Але тут немає русифікатора, і підтримуються лише FTP та HTTP.
      • VCL Styles for Inno Setup / ISSkin / Graphical Installer (останній платний інструмент) – інструменти для зміни оформлення майстра установки вашого дистрибутива.

      • InnoScript – автоматично створює файл скрипту Inno Setup (.iss) за файлом проекту Visual Basic (.vbp або .vbproj). Є русифікація.

      • - Створює дистрибутив для проекту Visual Basic з середовища розробки Visual Basic 6.0.

      • – дозволяє файлу Delphi проекту (.dpr ) або файлу проекту бібліотеки Delphi (.dpk ) створити список залежностей необхідний створення дистрибутива. З проектом Delphi XE3 ця утиліта у мене відмовилася працювати.
      • Inno Setup Script #Includes – бібліотека функцій, які можна використовувати під час встановлення. Список функцій можна переглянути.
      • Inno Setup Easy Translator – редактор мовних файлів Inno Setup (.isl). Цей сайт не працює з 2013 року, але засмучуватися не потрібно, адже ви можете легко створювати та редагувати мовні файли у будь-якому текстовому редакторі.
      • UninsHs – розширення, що дозволяє додати підтримку "Repair/Modify/Remove" у ваші програми.

Ще в цьому списку чомусь немає ще деяких відомих розробок (список оновлено 13.04.2015 ):

      • - Інтерфейс користувача для роботи зі скриптом Inno Setup . Ця програма дуже схожа на Inno Script Studio. Якщо пошукати, можна знайти русифікацію, див. картинку.

      • InnoIDE – ще один інтерфейс для роботи зі скриптом Inno Setup . Сайт InnoIDE перестав існувати приблизно у серпні 2012 року (www.innoide.org), тому використовувати цю розробку немає сенсу. Але зберігся архів сайту, який можна переглянути. Там же можна завантажити дистрибутив. Русифікацію InnoIDE можна знайти в Інтернеті.

      • InnoSetup Script Joiner – утиліта, що об'єднує кілька скриптів Inno Setup в один.
      • (Inno Setup Unpacker) - розпакувальник дистрибутивів створених за допомогою Inno Setup. Консольний додаток.
      • InnoExtractor – ще один розпакувальник, але має інтерфейс користувача. Є русифікація. З моїм зашифрованим тестовим дистрибутивом впорався на відмінно (див. картинку). Як бачите, дістає абсолютно всі файли, у тому числі і файли, що використовуються інсталятором, і навіть файл скрипта Inno Setup.

Власне, після того, як ви визначилися з необхідним функціоналом, ви можете починати встановлення. Тут я розгляну лише установку Inno Setup + Inno Script Studio за допомогою QuickStart Pack (файл ispack-5.5.5-unicode.exe). Хоча докладно розписувати всі кроки немає сенсу, зупинюся лише на деяких. Галочка "Download and install Inno Script Studio" повинна стояти, якщо ви хочете встановити Inno Script Studio, галочка "Install Inno Setup Preprocessor" - щоб встановити препроцесор, галочка "Download and install encryption support" - щоб встановити модуль ISCrypt.dll для шифрування дистрибутива .

Перший запуск Inno Setup Compiler

Єдине вікно програми Inno Setup – це компілятор. Компілятор запускається з меню "Пуск". При першому запуску ви побачите запрошення, яке пропонує створити порожній скрипт, запустити майстер створення скрипта або відкрити приклади або останні використані файли.

Якщо у вас немає досвіду спілкування з Inno Setup, то приклади будуть доречними. Давайте відкриємо якийсь приклад, натисніть кнопку «OK» та виберіть один із прикладів. Після того, як приклад відкрився, ви можете оцінити, як виглядає простий скрипт Inno Setup . Зверніть увагу, що інтерфейс компілятора дуже простий і весь скрипт вам потрібно буде писати вручну. У вашому розпорядженні тут буде лише довідка та приклади.

Використання майстра для створення скрипту Inno Setup

Створювати новий скрипт Inno Setup можна з чистого аркуша або можете скористатися майстром створення скрипту. Для прикладу я зроблю дистрибутив для встановлення програми MyProg.exe, яка знаходиться в папці з прикладами (встановлюється разом із Inno Setup). При запуску програма видає два віконця та завершується.

Щоб викликати вікно майстра створення скрипта, клацніть по пункту меню "File -> New" або у вікні привітання виберіть опцію "Create a new script file using the Scrip Wizard" і натисніть "OK". Перший екран майстра буде із вітанням. Натисніть тут «Next».

На другому екрані введіть назву програми (Application name), версію програми (Application version), видавця програми (Application publisher) та адресу сайту програми (Application website). Жирним шрифтом у майстрі відзначені обов'язкові поля, інші можна зробити порожніми.

На наступному кроці ви вибираєте папку для своєї програми. За промовчанням, як видно по картинці, це папка з тим же ім'ям, що і ім'я програми, і вона буде створена всередині папки Program Files . Галочка "Allow user to change the application folder" дозволить користувачеві змінити папку у процесі установки. А при установці галки The Application doesn't need a folder папка програми взагалі не буде створюватися.

Якщо з випадаючого списку «Application destination base folder» ви оберете «(Custom)», то поле, що знаходиться трохи нижче, можна буде задати довільний шлях. Наприклад, щоб папка програми була на системному диску, потрібно вказати «(sd) ».

Як бачите, для вказівки системного диска я вказав “(sd)” замість “C:”, адже на різних комп'ютерах системний диск може бути різним. Взагалі в Inno Setup ви будете часто використовувати константи типу «(sd) ». Усі константи оточені фігурними дужками та їх дуже багато. Ось повний список констант із коротким описом (повний опис дивіться у розділі «Constants» у довідці):

Константи директорій:

      • (app) – директорія програми, наприклад, «C: Porgram Files Моя Програма».
      • (win) - директорія Windows, наприклад, "C: WINDOWS".
      • (sys) – директорія System32, наприклад, «C: WINDOWS SYSTEM».
      • (src) – директорія, де знаходяться файли дистрибутива (це тимчасова папка з розпакованими файлами дистрибутива).
      • (SD) – системний диск, наприклад, «C:».
      • (pf) – директорія додатків, наприклад, C:\Program Files (x86) (у 64-бітному режимі – це буде папка для 64-бітових додатків). У 32-бітному режимі ця константа еквівалентна константі (pf32), а в 64-бітному – (pf64).
      • (cf) – папка спільних файлів, наприклад, "C:\Program Files (x86)\Common Files". У 32-бітному режимі ця константа еквівалентна константі (cf32), а в 64-бітному – (cf64).
      • (tmp) – тимчасова папка, яка використовується при інсталяції або деінсталяції (ім'я папки буде у форматі «C:WINDOWSTEMPIS-xxxxx.tmp»).
      • (fonts) – папка шрифтів.
      • (dotnet11) – коренева папка .NET Framework 1.0.
      • (dotnet20) – коренева папка .NET Framework 2.0. У 32-бітному режимі ця константа еквівалентна константі (dotnet2032), а в 64-бітному – (dotnet2064).
      • (dotnet40) – коренева папка .NET Framework 4.0. У 32-бітному режимі ця константа еквівалентна константі (dotnet4032), а в 64-бітному – (dotnet4064).

Константи папок оточення:

      • (group) – шлях до папки меню "Пуск", доступної для всіх користувачів.
      • (localappdata) – шлях до локальної (без роумінгу) папки Application Data.
      • (sendto) – шлях до папки користувача Send To.
      • (userappdata) та (commonappdata) – шлях до папки Application Data.
      • (usercf) – шлях до папки користувача Common Files (працює лише для Windows 7 та наступних версій, для старих версій Windows ця константа буде прирівняна до (localappdata)\Programs\Common).
      • (userdesktop) та (commondesktop) * - шлях до папки робочого столу.
      • (userdocs) та (commondocs) – шлях до папки «Мої документи» (My Documents).
      • (userfavorites) і (commonfavorites) * - шлях до папки "Вибране" (Favorites).
      • (userpf) – шлях до папки користувача Program Files (працює лише для Windows 7 та наступних версій, для старих версій Windows ця константа буде прирівняна до (localappdata)\Programs).
      • (userprograms) та (commonprograms) * - шлях до папки «Всі програми» (Programs) у меню «Пуск».
      • (userstartmenu) та (commonstartmenu) * - шлях до верхнього рівня меню «Пуск».
      • (userstartup) та (commonstartup) * - шлях до папки «Автозавантаження» (Startup) у меню «Пуск».
      • (usertemplates) та (commontemplates) * - шлях до папки «Шаблони» (Templates).

* = константи "common" прирівнюються до константів "user", якщо користувачу не вистачає адміністративних привілеїв або інструкція PrivilegesRequired встановлена ​​в lowest.

Інші константи:

      • (\) – використовується в тих випадках, коли в кінці шляху потрібно встановити сліш, наприклад (app)(\). Інакше Inno Setup прибере останній сліш.
      • (%NAME|DefaultValue) – значення змінної оточення, де NAME – ім'я змінної, DefaultValue – рядок, який потрібно використовувати, якщо змінної немає. DefaultValue – використовувати необов'язково. Приклади: (%COMSPEC) або (%PROMPT|$P$G). Якщо у рядку використовуються символи ",", "|", ")" або "%", то замість них потрібно писати "%2c", "%7c", "%7d" і "%25", відповідно.
      • (cmd) – повний шлях до консолі, наприклад, Windows System32 cmd.exe (змінна оточення COMSPEC не використовується для розкриття цієї константи).
      • (computername) – ім'я комп'ютера, на якому виконується інсталяція або деінсталяція (значення, що повертається функцією GetComputerName).
      • (Drive:Path) – отримує букву диска з двокрапкою з довільного шляху. Якщо вказано UNC-шлях, то повертає сервер і папку, наприклад \SERVER\SHARE. Тут також, щоб написати символи «,», «|», «)» або «%», потрібно писати «%2c», «%7c», «%7d» та «%25» відповідно. Ось приклади: (drive:(src)), (drive:c:\path\file) або (drive:\server\share\path\file).
      • (groupname) – ім'я папки в меню «Пуск» для пунктів меню, яку вибрав користувач під час інсталяції. На відміну від константи (group) повертає лише ім'я, а чи не повний шлях.
      • (hwnd) – ідентифікатор фонового вікна інсталятора.
      • (wizardhwnd) – ідентифікатор вікна майстра інсталятора або 0, якщо ідентифікатор недоступний.
      • (ini:Filename,Section,Key|DefaultValue) - значення з INI-файлу, де Filename - це ім'я INI-файлу, Section - ім'я секції в INI-файлі, Key - ім'я ключа в INI-файлі, DefaultValue - рядок який потрібно використовувати, якщо вказаний ключ не знайдено. Тут також, щоб написати символи «,», «|», «)» або «%», потрібно писати «%2c», «%7c», «%7d» та «%25» відповідно. Приклад: (ini:(win)\MyProg.ini,Settings,Path|(pf)\My Program).
      • (language) – внутрішнє ім'я вибраної мови.
      • (cm:MessageName) та (cm:MessageName,Arguments) – повідомлення поточною мовою, де MessageName – ім'я повідомлення, Arguments – аргументи для повідомлення розділені комами. Тут також, щоб написати символи «,», «|», «)» або «%», потрібно писати «%2c», «%7c», «%7d» та «%25» відповідно. Приклад: (cm: LaunchProgram, Inno Setup).
      • (reg:HKxx\SubkeyName,ValueName|DefaultValue) – рядок з реєстру, де HKxx – кореневий ключ реєстру, SubkeyName – шлях до потрібного ключа, ValueName – ім'я значення (або порожньо, якщо потрібно рахувати значення за замовчуванням для ключа), DefaultValue рядок, який потрібно використовувати, якщо вказаного значення немає або значення не рядок (REG_SZ або REG_EXPAND_SZ). Тут також, щоб написати символи «,», «|», «)» або «%», потрібно писати «%2c», «%7c», «%7d» та «%25» відповідно. Приклад: (reg:HKLM\Software\My Program,Path|(pf)\My Program).
      • (param:ParamName|DefaultValue) – параметр переданий інсталятору в командному рядку, де ParamName – ім'я параметра, DefaultValue - рядок, який потрібно використовувати, якщо вказаний параметр не знайдено. Щоб написати символи «,», «|», «)» або «%», потрібно писати «%2c», «%7c», «%7d» і «%25», відповідно. Приклад: (param:Path|(pf)\My Program).
      • (srcexe) – повний шлях до інсталятора, наприклад, C:\SETUP.EXE.
      • (uninstallexe) – повний шлях до деінсталятора, створеного інсталятором, наприклад, C: Program Files My Program unins000.exe. Ця константа зазвичай використовується для створення ярлика для видалення програми в розділі скрипта Inoo Setup. Константа дійсна, лише якщо інструкція Uninstallable встановлена ​​у yes.
      • (sysuserinfoname), (sysuserinfoorg) – ім'я та організація, відповідно, на які зареєстрована Windows. Ця інформація зчитується з реєстру.
      • (userinfoname) , (userinfoorg) , (userinfoserial) – ім'я, організація та серійний номер, відповідно, вказані користувачем на сторінці «Інформація про користувача» у майстрі інсталятора (яка може бути включена за допомогою інструкції UserInfoPage). Зазвичай, ця інформація використовується для запису в реєстр або INI для подальшого використання.
      • (username) – ім'я користувача інсталятора або деінсталятора, що запустив (використовується функція GetUserName).
      • (log) – ім'я файлу журналу або порожній рядок, якщо журнал не ввімкнено.

Наступний крок майстра створення скрипту Inno Setup дозволяє додати файли вашої програми.

У верхньому полі вибирається основний виконуваний файл. Якщо ви встановите галку "Allow user to start the application after Setup has finished ", користувач побачить пропозицію запустити програму після установки. Якщо у вашого дистрибутива немає файлу, то ви можете встановити галку «The application doesn't have a main executable file ». Нижче наведено список файлів для вашого дистрибутива. Тут можна додавати окремі файли (кнопка "Add file(s) ...") або цілі папки (кнопка "Add folder ..."). Під час додавання папки ви побачите додаткове питання, включати підпапки чи ні.

Після додавання папок та файлів до списку ви зможете редагувати кожен елемент (кнопка «Edit…») або видалити його (кнопка «Remove»). У вікні редагування ви зможете змінити багато параметрів: чи потрібно рекурсивно включати підпапки (галка "Recurse subfolders"), чи потрібно включати порожні папки (галка "Include empty subfolders"), базова папка призначення (поля "Destination base folder") та папка базової папки призначення ("Destination subfolder").

Ми для прикладу додамо лише файл довідки.

Наступний крок майстра – це вибір створюваних іконок. У полі Application Start Menu folder name задається ім'я групи в меню Пуск. Якщо ви встановите галку "Allow user to change the Start Menu folder name", то користувач зможе змінити ім'я папки під час установки, а якщо ви встановите галку "Allow user to disable Start Menu folder creation", то користувач зможе взагалі відключити створення цієї папки у меню "Пуск". Встановіть галку «Create an Internet shortcut in the Start Menu folder» та «Create an Uninstall icon in the Start Menu folder», щоб інсталятор створив ярлики всередині групи, відповідно, для відкриття вашого сайту та видалення вашого додатка. Галочки "Allow user to create a desktop icon" та "Allow user to create a Quick Launch icon" дозволять користувачеві створити ярлики на робочому столі та групі швидкого запуску. Я поставлю всі галочки.

На наступному кроці задаються файли ліцензії (License file) та файли з інформацією, які будуть показані до та після інсталяції. Якщо ви вказали файл ліцензії, то при інсталяції користувач повинен буде погодитися з ліцензією. Підтримуються файли .txt та .rtf. Я вкажу файли license.txt та Readme.txt з папки з прикладами.

На наступному кроці вибираємо мови, що підтримуються. Я залишу англійську та додам російську.

Наступний крок задає параметри для компілятора Inno Setup . У полі "Custom compiler output folder" задається шлях до папки, до якої компілятор Inno Setup зберігатиме створений дистрибутив. Якщо в цьому полі порожньо, то дистрибутив буде створюватися в тій же папці, що й .iss файл. У полі Compiler output base file name задається базове ім'я для файлу або файлів дистрибутива. Наприклад, якщо у вас встановлено ім'я «setup», то при створенні дистрибутива, що складається з одного файлу, ви отримаєте файл setup.exe. У полі «Custom Setup icon file» можна вказати ім'я файлу іконки для майбутнього дистрибутива. Якщо тут нічого не вказано, то використовуватиметься стандартна іконка. В останньому полі Setup Password ви можете вказати пароль, який користувач повинен буде вказати при інсталяції. Якщо встановлена ​​галка «Use the password to encrypt the application files », за допомогою вказаного пароля будуть зашифровані файли, що у дистрибутиві. Я для прикладу заповнюю всі поля по-своєму.

Наступний крок повідомляє вам про те, що виявлено препроцесор Inno Setup і пропонує використовувати директиви #define для спрощення вашого скрипту. Якщо ви хочете використовувати директиву #define, залиште галочку "Yes, use #define compiler directives". Якщо галочка не встановлена, то надалі ви зможете додати директиви #define у ​​свій скрипт вручну.

І нарешті з'явився останній крок, де ми просто натискаємо на кнопку Finish.

Після цього компілятор одразу хоче скомпілювати наш скрипт. Давайте погодимося і натиснемо кнопку «Так».

Після цього компілятор попередить, що скрипт не збережений і запропонує зробити це.

Давайте погодимося (натиснемо «Так») і збережемо скрипт. Після збереження скрипт скомпілювався і готовий дистрибутив, у прикладі це файл my-setup.exe створився в папці, яку я вказав у майстрі на кроці «Compiler Settings». Після компіляції ви можете подивитися, як вона пройшла на панелі Compiler Output внизу вікна компілятора, див. картинку.

Як бачите, все просто. Тепер одразу протестуємо готовий дистрибутив. Натисніть пункт меню «Run -> Run », щоб запустити інсталяцію програми.

Після створення заготовки скрипта, ви можете приступити до додавання різних дій.

Налагодження дистрибутива в Inno Setup

Для налагодження вашого дистрибутива відкрийте скрипт .iss і клацніть по пункту меню «Run -> Run», щоб запустити встановлення програми. Після цього ви зможете відстежувати внутрішні процеси під час інсталяції у вікні "Debug Output", зможете ставити точки зупинки на потрібних рядках, див. картинку.

Щоб перевірити значення константи, під час налагодження, клацніть по пункту меню «Run -> Evaluate Constant… » і в діалозі вкажіть ім'я константи (див. картинку) і натисніть «ОК».

Після цього з'явиться наступне віконце із результатом, який повернула константа.

Щоб налагодити деінсталяцію, клацніть по пункту меню "Run -> Target Uninstall", а потім "Run -> Run". А для повернення назад до інсталяції, клацніть по пункту "Run -> Target Setup".

Структура скрипта Inno Setup

Скрипти у Inno Setup розбиті на секції. Ім'я кожної секції укладено у квадратні дужки. Усередині кожної секції містяться специфічні для цієї секції елементи. Для зручності можна робити кілька секцій з однаковим ім'ям. Такі секції сприйматимуться як одна. Ось приклад:

[ Setup ] AppName = My Program [ Files ] Source : " MYPROG.EXE " ; DestDir : "(app)"

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

У скрипті підтримується C-подібна директива #include , що змушує компілятор втягувати рядки з вказаного довільного текстового файлу, де ця директива стоїть. Ось синтаксис:

#include "filename.txt"

За допомогою директиви #preproc ви можете вказати, який препроцесор слід використовувати: вбудований, що підтримує тільки директиву #include або Inno Setup Preprocessor (ISPP), який підтримує дуже багато директив і функцій. За замовчуванням у скриптах використовується препроцесор ISPP, якщо він встановлений, а файли .isl використовується вбудований препроцесор. Ось синтаксис:

#preproc builtin #preproc ispp

Секції скрипту Inno Setup

Наведу повний список усіх секцій Inno Setup з коротким описом. Повний опис секцій та список елементів секцій можна знайти у довідці у розділі «Setup Script Sections».

- Ця секція містить глобальні налаштування, що використовуються при інсталяції та деінсталяції. Приклад:

[ Setup ] AppName = My Program AppVersion = 1.5 DefaultDirName = ( pf ) \ My Program DefaultGroupName = My Program

– необов'язкова секція, яка визначає параметри установки (Повна / Компактна / Вибіркова ), які відображатимуться на сторінці вибору компонентів для встановлення. Приклад:

[Types] Name: "full"; Description: "Full installation" Name: "compact"; Description : "Installation Compact" Name : "custom" ; Description: "Custom installation"; Flags: iscustom

– необов'язкова секція, яка визначає компоненти, які відображатимуться на сторінці вибору компонентів для встановлення. Приклад:

[Components] Name: "main"; Description : "Main Files" ; Types: full compact custom; Flags : fixed Name : "help" ; Description : "Help Files" ; Types: full Name: "help\english"; Description : "English" ; Types: full Name: "help\dutch"; Description: "Dutch"; Types: full

– необов'язкова секція для створення додаткових завдань, що виконуються при інсталяції. Користувач бачитиме завдання у вигляді перемикачів і зможе вибирати виконувати те чи інше завдання чи ні. Приклад:

[ Tasks ] Name : desktopicon; Description : "Create a &desktop icon" ; GroupDescription : "Additional icons:" ; Components : main Name : desktopicon\common; Description : "For all users" ; GroupDescription : "Additional icons:" ; Components: main; Flags: exclusive Name: desktopicon\user; Description : "Для поточного користувача тільки" ; GroupDescription : "Additional icons:" ; Components: main; Flags: exclusive unchecked Name: quicklaunchicon; Description : "Create a Quick Launch icon" ; GroupDescription : "Additional icons:" ; Components: main; Flags: unchecked Name: associate; Description : "&Associate files" ; GroupDescription : "Other tasks:" ; Flags: unchecked

– ця необов'язкова секція визначає, які додаткові папки, окрім папки програми, потрібно створювати.

[ Dirs ] Name : "(app)\data" Name : "(app)\bin"

– необов'язкова секція, яка визначає, які файли встановлюватимуться на комп'ютер.

[Files] Source: "CTL3DV2.DLL"; DestDir: "(sys)"; Flags : onlyifdoesntexist uninsneveruninstall Source : "MYPROG.EXE" ; DestDir: "(app)" Source: "MYPROG.CHM"; DestDir: "(app)" Source: "README.TXT"; DestDir: "(app)"; Flags: isreadme

– необов'язкова секція, яка визначає, які створюватимуться ярлики в меню «Пуск», на робочому столі тощо.

[Icons] Name: "(group) \ My Program"; Filename : "(app)\MYPROG.EXE" ; WorkingDir : "(app)" Name : "(group)\Uninstall My Program" ; Filename : "(uninstallexe)"

– необов'язкова секція, яка визначає, які записи будуть додані до INI-файлу.

[INI] Filename: "MyProg.ini"; Section : "InstallSettings" ; Flags : uninsdeletesection Filename : "MyProg.ini" ; Section : "InstallSettings" ; Key : "InstallPath"; String : "(app)"

і - ці необов'язкові секції визначають, які файли чи папки потрібно видалити, відповідно, при першій інсталяції чи деінсталяції. Приклад:

[UninstallDelete] Type: files; Name : "(win)\MYPROG.INI"

– секція визначає мови, які будуть доступні під час інсталяції. Під час запуску інсталятора буде підібрано мову, що збігається з мовою системи. В іншому випадку за умовчанням буде використовуватися мова, що знаходиться першою в секції. Приклад:

[Languages] Name: "en"; MessagesFile : "compiler:Default.isl" Name : "nl" ; MessagesFile : "compiler:Languages\Dutch.isl"

– розділ для заміни повідомлень, описаних у мовних файлах .isl . Приклад заміни стандартного тексту &Next > на кнопці переходу на наступний крок тільки для англійської мови:

[ Messages ] en.ButtonNext =&Forward >

– секція визначення значень константи (cm:...) , див. опис констант вище. Приклад використання:

[CustomMessages] CreateDesktopIcon=Create a &desktop icon [ Tasks ] Name : desktopicon; Description : "(cm:CreateDesktopIcon)"

– розділ містить параметри мови, такі як шрифт. Приклад:

[ LangOptions ] LanguageName=English LanguageID=$0409 LanguageCodePage=0 DialogFontName= DialogFontSize=8 WelcomeFontName=Verdana WelcomeFontSize=12 TitleFontName=Arial TitleFontSize=

– ця необов'язкова секція визначає, які ключі та значення потрібно створити, змінити чи видалити у реєстрі. Приклади використання:

[Registry] Root: HKCU; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty Root: HKCU; Subkey:; Flags: uninsdeletekey Root: HKLM; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty Root: HKLM; Subkey: "Software\My Company\My Program"; Flags: uninsdeletekey Root: HKLM; Subkey : "Software\My Company\My Program\Settings"; ValueType: string; ValueName : "InstallPath" ; ValueData : "(app)"

– ця необов'язкова секція визначає, які програми потрібно виконати після успішного встановлення, але до появи фінішного кроку у вікні майстра установки. Приклади:

[ Run ] Filename : "(app)\INIT.EXE" ; Parameters : "/x" Filename : "(app)\README.TXT" ; Description: "View the README file"; Flags : postinstall shellexec skipifsilent Filename : "(app)\MYPROG.EXE" ; Description: "Launch application"; Flags : postinstall nowait skipifsilent unchecked

– ця необов'язкова секція визначає, які програми потрібно виконати на початку деінсталяції.

- У цій необов'язковій секції ви можете розмістити свій Pascal-скрипт. Для обробки Pascal-скрипта використовується двигун RemObjects Pascal Script. Цей двигун так само безкоштовний, як і Inno Setup. Офіційна сторінка движка RemObjects Pascal Script - . Приклади використання можна знайти у файлах Code*.iss та UninstallCode*.iss у папці Examples у місці встановлення Inno Setup .

Порядок інсталяції та деінсталяції

Дуже важливий момент під час інсталяції – це розуміння, в якому порядку відбувається виконання скрипту. Нижче наведено дії інсталятора в тому порядку, в якому вони будуть виконуватися при встановленні:

      • Виконання секції.
      • Елементи секції зберігаються у журналі деінсталяції (який, цьому етапі зберігається у пам'яті).
      • Створюється директорія програми, якщо потрібно.
      • Виконується секції.
      • Резервується ім'я файлу журналу деінсталяції, якщо необхідно.
      • Виконується секція (реєстрація файлів поки що не проводиться).
      • Виконується секція.
      • Виконується секція.
      • Виконується секція.
      • Файли, які мають реєструватися, реєструються, за винятком випадку, коли система має бути перезавантажена. У разі, коли потрібне перезавантаження, реєстрація відбувається лише після рестарту системи.
      • Додавання до списку встановлених програм (Панель керування\Програми\Програми та компоненти), якщо потрібно.
      • Елементи секції зберігаються в журнал деінсталяції.
      • EXE-файл та журнал деінсталятора зберігаються на диск. Після цього моменту, користувачеві заборонено скасування установки, і будь-які наступні помилки не призведуть до відкату установки.
      • Виконує секцію , крім елементів секції із встановленим прапором «postinstall », які будуть виконані після відображення останнього кроку майстра установки.
      • Оновлення асоціацій для файлів, якщо прапор "ChangesAssociations" встановлено в "yes".
      • Оповіщення додатків про те, що змінні оточення змінилися, якщо прапор "ChangesEnvironment" встановлений в "yes".
      • Що стосується елементів секції, то вони будуть виконуватися в порядку, в якому вони розташовані всередині секції.

Деінсталяція відбувається у зворотному порядку. Але це стосується секцій і , які виконуватимуться у порядку, у якому зустрічаються у скрипті (не в зворотному порядку).

Препроцесор Inno Setup

Кілька слів хочеться написати про препроцесор Inno Setup (ISPP). Основне завдання препроцесора – це автоматизація завдань під час компіляції та зниження ймовірності друкарської помилки у ваших скриптах. Наприклад, ви можете оголосити змінну ISPP (змінна часу компіляції), що містить ім'я вашої програми, а потім використовувати значення цієї змінної в кількох місцях вашого скрипта. Якщо надалі з якоїсь причини ви повинні змінити ім'я вашої програми, ви зможете зробити це в одному місці вашого скрипта. Без ISPP, вам доведеться знайти та виправити всі частини скрипту, де ви використовуєте ім'я програми, наприклад AppName, AppVerName, DefaultGroupName і т.п.

Інший приклад використання ISPP – це витягування інформації про версію програми з файлу ЕХЕ та використання її в інструкції AppVerName у секції . Без ISPP, вам доведеться змінювати скрипт щоразу при зміні версії програми.

Крім того, розбиття скрипта на частини дає можливість створити єдиний скрипт для різних версій вашої програми (наприклад, пробна та повнофункціональна версії).

При використанні препроцесора важливо пам'ятати, що препроцесор працює лише під час компіляції.

Виклик компілятора Inno Setup із командного рядка

Не зайвим знатиме і про можливість компіляції дистрибутива з командного рядка. Виклик компіляції виглядає так:

compil32 /cc

А ось приклад:

compil32 /cc "c:\isetup\samples\my script.iss"

Виклик компіляції з командного рядка не приховує відображення прогресу або повідомлень про помилки. Компілятор повертає 0, якщо компіляція пройшла успішно, 1, якщо параметри командного рядка неправильно передані, або 2, якщо компіляція не вдалася.

Альтернативний спосіб компіляції – це використання консольного компілятора ISCC.exe. Ось схема використання компілятора:

iscc [ options]

А ось приклад:

iscc "c:\isetup\samples\my script.iss"

Ось основні опції:

/DO – вимкнути створення дистрибутива (змінює всі параметри Output у скрипті).
/EO – увімкнути створення дистрибутива (змінює всі параметри Output у скрипті).
/O – встановлює шлях, де буде створено дистрибутив (змінює всі параметри OutputDir у скрипті).
/F – встановлює ім'я файлу дистрибутива (змінює всі параметри OutputBaseFilename у скрипті).
/S – налаштування параметра SignTool.
/Q[p] – для прихованої компіляції (виводяться лише повідомлення про помилки, «p» виводить прогрес).
/? – для відображення довідки.

Ось приклад із використанням опцій:

iscc /Qp /O"My Output" /F"MyProgram-1.0 " /Sbyparam=$p "c:\isetup\samples\my script.iss"

ISCC повертає 0, якщо компіляція пройшла успішно, 1, якщо неправильно вказані параметри, або відбулася внутрішня помилка, або 2, якщо компіляція не вдалася.

У висновку про Inno Setup

Розповісти про всі можливості Inno Setup не вдасться в рамках однієї статті, це дуже великий обсяг інформації, тому я тут описав лише основні моменти. Після прочитання, ви зможете почати користуватися цим чудовим інструментом для створення власних дистрибутивів. У майбутньому я розповім про альтернативні інтерфейси користувача. А зараз, пишіть ваші коментарі до статті, і я намагатимусь відповісти на всі ваші запитання.

mob_info