Как создать EXE‑установщик для Windows
TL;DR
Кратко: есть три простых пути создать EXE‑инсталлятор для Windows — SFX через 7‑Zip (быстро и просто), IExpress (встроенный мастер Windows с простым интерфейсом) и Inno Setup (гибкий скриптовый инструмент для продакшна). Выберите 7‑Zip для быстрых раздач, IExpress для простых мастеров, Inno Setup — для полноценных установщиков.

Введение
Если вы разработали приложение под Windows — от небольшой утилиты до игры — самый удобный способ распространять его пользователям — упаковать в один инсталлятор EXE. Инсталлятор упрощает установку, создаёт ярлыки, записывает файлы в Program Files и (при необходимости) добавляет записи в реестр.
В этой статье рассматриваются три проверенных подхода:
- Быстрый SFX‑архив с помощью 7‑Zip;
- Мастер‑инсталлятор IExpress, встроенный в Windows;
- Полнофункциональный скриптовый Inno Setup.
Далее — пошагово, с подсказками, проверками, примерами и рекомендациями по безопасности и совместимости.
Основные термины (1‑строчные определения)
- SFX: самораспаковывающийся архив, выглядит как EXE, просто распаковывает файлы.
- Installer: программа, которая устанавливает приложение, создаёт ярлыки, может изменять реестр и регистрировать удаление.
- ISS: скрипт Inno Setup (.iss) — конфигурация инсталлятора.
1. Быстрое EXE через 7‑Zip (SFX — self‑extracting archive)
Подходит для: одноразовой раздачи, тестовых сборок, небольших утилит без сложных требований к инсталляции.
Плюсы:
- Очень просто и быстро.
- Получаете один EXE без дополнительных инструментов.
- Подходит для пользователей без специальных архиваторов.
Минусы:
- Не настоящий установщик: не создаёт записи в реестре, не добавляет запись в «Удаление программ», не ведёт логов установки.
- Не управляет правами UAC или созданием ярлыков (без дополнительного скрипта).
Шаги (подробно):
- Сложите все файлы и папки приложения в один корневой каталог. Назовите папку так, как хотите, чтобы она выглядела в установке.
- Правый клик по папке -> 7‑Zip -> Добавить в архив…
- В окне архивации выберите формат 7z.
- Включите опцию “Создать SFX‑архив” (Create SFX Archive).
- Рекомендуемые параметры (пример):
- Archive format: 7z
- Compression level: Normal
- Compression method: LZMA2
- Dictionary size: 16 MB
- Word size: 32
- Solid block size: 2 GB
- Нажмите OK, дождитесь создания EXE.
Примечание: SFX просто распаковывает файлы в папку пользователя. Если нужен полноценный инсталлятор (ярлыки, реестр, деинсталляция), выбирайте другой метод.
Скачать: 7‑Zip для Windows (бесплатно)
2. IExpress — встроенный мастер Windows
Подходит для: быстрых мастеров установки с несколькими страницами, когда нужна простая последовательность действий и выбор папки установки.
Плюсы:
- Входит в Windows, не требует сторонних установщиков.
- Создаёт мастера с несколькими шагами: подтверждение, лицензия, выбор папки, сообщение о завершении.
Минусы и ограничения:
- Не включает пустые директории и имеет проблемы с поддиректориями.
- Не умеет правильно обрабатывать одноимённые файлы из разных папок.
- Устаревший интерфейс и ограниченные возможности кастомизации.
Шаги (подробно):
- Нажмите Windows+R, введите iexpress.exe и запустите мастер.
- Выберите “Create new Self Extraction Directive file” и нажмите Далее.
- Выберите “Extract files only” или другой подходящий режим, затем Далее.
- Укажите название пакета (Package Title), это будет отображаться в мастере.
- Настройте запрос подтверждения (No prompt или Prompt user with). Для безопасности обычно выбирают отображение.
- При необходимости добавьте лицензионное соглашение (Display a license).
- Нажмите Add и добавьте все файлы, которые должны попасть в пакет.
- Выберите параметры окна (Show Window) и сообщение по завершении (Finished Message).
- Укажите имя файла пакета и путь сохранения.
- При желании сохраните SED (Self Extraction Directive) файл для последующего редактирования.
- Нажмите Next на странице Create Package и дождитесь завершения.
Ограничения IExpress:
- Не включает пустые папки и часто ломает структуру подпапок.
- При наличии двух файлов с одинаковыми именами (даже в разных подпапках) процесс создания может завершиться с ошибкой.
Рекомендация: для профессиональных релизов лучше использовать Inno Setup или другой современный инструмент.
3. Inno Setup — полнофункциональный инсталлятор (рекомендуется для релизов)
Подходит для: коммерческих и Open Source‑релизов, когда важна гибкая логика установки, ярлыки, деинсталлер, регистрирование компонентов и локализация.
Почему Inno Setup:
- Бесплатен и активно развивается.
- Скриптовая конфигурация (.iss) даёт полный контроль.
- Поддерживает создание ярлыков, запись в реестр, деинсталлятор, проверку версий, условные секции, расширения Pascal‑Script для сложной логики.
Быстрая инструкция (пошагово):
- Установите Inno Setup и откройте Inno Setup Compiler.
- В приветственном мастере выберите “Create a new script file using the Script Wizard”.
- Введите Application Name, Application Version, Publisher и Website (при желании).
- Выберите Destination base folder (обычно {pf} — Program Files).
- Задайте Application folder name (папка в Program Files).
- Укажите основной исполняемый файл приложения (main executable) или отметьте, что приложения без главного EXE.
- Добавьте дополнительные файлы и папки через Add files… и Add folders… .
- Настройте ярлыки — Desktop и/или StartMenu.
- По желанию укажите документацию: LICENSE.TXT, INSTALL.TXT, README.TXT.
- Выберите языки установки (по умолчанию English) или добавьте русский.
- На странице Compiler Settings укажите:
- Custom compiler output folder — куда поместится готовый setup.exe;
- Compiler output base file name — имя EXE (по умолчанию setup.exe);
- Custom Setup icon file — путь к *.ico для установщика;
- Setup password — если хотите ограничить использование инсталлера.
- Нажмите Finish, затем Yes чтобы скомпилировать.
- Решите сохранить .iss скрипт (Yes, если планируете обновления и правки).
Пример минимального ISS‑скрипта (шаблон):
[Setup]
AppName=MyApp
AppVersion=1.0
DefaultDirName={pf}\MyApp
DefaultGroupName=MyApp
OutputBaseFilename=MyAppSetup
Compression=lzma2
SolidCompression=yes
[Files]
Source: "dist\MyApp.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "dist\data\*"; DestDir: "{app}\data"; Flags: recursesubdirs createallsubdirs
[Icons]
Name: "{group}\MyApp"; Filename: "{app}\MyApp.exe"
Name: "{commondesktop}\MyApp"; Filename: "{app}\MyApp.exe"; Tasks: desktopicon
[Run]
Filename: "{app}\MyApp.exe"; Description: "Запустить MyApp"; Flags: nowait postinstall skipifsilentСоветы по работе с Inno Setup:
- Храните все файлы для инсталлятора в отдельной папке, откуда собирается дистрибутив.
- Версионируйте .iss файлы в системе контроля версий.
- Проверяйте установку в виртуальной машине с «чистой» Windows перед публикацией.
Как выбрать метод — эвристика
- Нужен быстрый однопользовательский EXE, без установки в систему: 7‑Zip SFX.
- Нужен простой мастер с выбором папки и несколькими страницами: IExpress.
- Нужен полноценный инсталлятор для пользователей и IT‑распространения: Inno Setup.
Mermaid‑диаграмма для выбора (решение):
flowchart TD
A[Нужно ли управлять ярлыками / реестром / деинсталлятором?] -->|Да| B[Использовать Inno Setup]
A -->|Нет| C[Требуется ли многостраничный мастер/лицензия?]
C -->|Да| D[Использовать IExpress]
C -->|Нет| E[Использовать 7‑Zip SFX]Безопасность и защита инсталлятора
- Подписывайте исполняемые файлы цифровой подписью (Code Signing Certificate). Подпись повышает доверие и предотвращает предупреждения SmartScreen.
- Проверяйте целостность дистрибутива (SHA‑256 хэш) и публикуйте его рядом с загрузкой.
- Минимизируйте права: не требуйте UAC, если можно установить в %LOCALAPPDATA% вместо Program Files.
- Не встраивайте пароли или секреты в установщик.
- Учитывайте антивирусы: тестируйте сборку в VirusTotal и на контрольных рабочих станциях.
Важно: цифровая подпись и проверка хэша — основные меры для безопасного релиза.
Совместимость, тесты и сценарии приёмки
Критерии приёмки (минимум для продакшн‑релиза):
- Инсталлятор корректно устанавливает приложение в указанную папку.
- Ярлыки создаются корректно на рабочем столе и в меню «Пуск».
- Деинсталлятор удаляет все файлы и создаёт запись в «Программы и компоненты».
- Установка без прав администратора возможна (если предусмотрено).
- Инсталлятор корректно обрабатывает обновления: не перезаписывает файлы при несовместимости.
- Логи установки доступны и содержат ошибки, если они произошли.
Тестовые кейсы (рекомендованные):
- Установка на чистой системе Windows 10/11 (64‑бит) с правами администратора.
- Установка без прав администратора (в локальную папку пользователя).
- Обновление с версии N‑1 до N (патч‑инсталляция).
- Удаление (деинсталляция) и проверка полного очищения.
- Установка при уже запущенном приложении (файловые блокировки).
- Установка с языком системы отличным от английского.
Роли и чек‑листы (кто что должен сделать перед релизом)
Разработчик:
- Подготовить финальные бинарники и ресурсы.
- Создать .iss или собрать SFX с корректной структурой.
- Указать корректные версии и метаданные.
Тестировщик:
- Прогнать тест‑кейсы установки/обновления/удаления.
- Проверить логирование и обработку ошибок.
Руководитель релиза / DevOps:
- Подписать бинарник (code signing).
- Сгенерировать и опубликовать контрольный хэш (SHA‑256).
- Подготовить страницу загрузки и инструкции по установке.
Советы по локализации и поддержке нескольких языков
- Inno Setup поддерживает локализации мастера; добавьте русский локаль, если планируете русскоязычных пользователей.
- Тексты лицензии и README предоставляйте на всех целевых языках.
- Убедитесь, что пути и имена файлов корректно обрабатывают юникод (русские символы в путях).
Альтернативные инструменты и когда их использовать
- WiX Toolset — для корпоративных MSI‑пакетов и интеграции с CI/CD.
- NSIS — мощный и компактный, аналог Inno, с большим количеством плагинов.
- InstallShield / Advanced Installer — коммерческие решения с GUI и поддержкой корпоративных сценариев.
Выбор зависит от требований к MSI, интеграции со службой развёртывания и объёма кастомной логики.
Примеры ошибок и когда методы не сработают
- Если нужно управлять сервисами Windows или COM‑регистрацией — SFX и IExpress не подходят.
- Для централизованного развёртывания через Group Policy/SSU нужен MSI (WiX) или конвертация.
- Если у приложения сложная логика миграции/обновления баз данных, используйте Inno + Pascal‑Script или полноценный инсталлятор с pre/post скриптами.
Производственный чек‑лист перед публикацией
- Собраны final binary и ресурсы.
- Проведены тесты установки/удаления/обновления.
- Приложение подписано кодовой подписью.
- Сгенерирован и опубликован SHA‑256 хэш.
- Подготовлена документация (LICENSE, README, INSTALL).
- Проверена совместимость с целевыми версиями Windows.
GDPR и приватность (если установщик участвует в сборе данных)
Если во время установки собираются персональные данные (например, регистрация, email):
- Убедитесь, что пользователь явно соглашается (EULA / отдельная форма).
- Храните минимально необходимые данные и объясните цель сбора.
- Обеспечьте доступ к политике конфиденциальности и контакты для запросов удаления.
Если инсталлятор просто копирует файлы без сбора данных, GDPR‑требования в общих случаях не применимы, но всё равно опубликуйте информацию о приватности приложения.
Короткая методология релиза (mini‑SOP)
- Сборка: соберите артефакты в clean/dist папку.
- Подготовка инсталлятора: создайте .iss или SFX пакет.
- Подпись: подпишите setup.exe и (опционально) внутренние EXE.
- Тестирование: прогоните тест‑кейсы на чистых системах.
- Публикация: загрузите файл, опубликуйте хэш и заметки релиза.
- Мониторинг: отслеживайте обратную связь и багрепорты.
Сводка
- 7‑Zip SFX — быстрый способ получить один EXE, но без функциональности установки.
- IExpress — встроенный мастер, удобен для простых инсталляторов, но имеет ограничения.
- Inno Setup — лучший выбор для продакшн‑релизов: гибкий, скриптовый, поддерживает локализацию и расширения.
Пройдите минимальный чек‑лист безопасности и тестирования перед публикацией, подпишите инсталлятор и опубликуйте хэш для доверия пользователей.
Короткие рекомендации по выбору
- Для тестов и отправки друзьям — 7‑Zip SFX.
- Для простых мастер‑установок, когда не хочется устанавливать сторонний софт — IExpress.
- Для публичных релизов — Inno Setup.
Спасибо — и удачных релизов!
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone