Перейти к содержимому

Создать NSIS-инсталлятор онлайн, не написав ни строчки скрипта

Что такое NSIS, как выглядит минимальный скрипт .nsi и как получить стандартный Setup.exe на NSIS с мастером Modern UI, ярлыками и деинсталлятором, заполнив форму вместо написания скрипта.

Обновлено 31 октября 2026 г. · 3 мин чтения

NSIS, Nullsoft Scriptable Install System, уже больше двадцати лет остаётся незаметной рабочей лошадкой инсталляторов для Windows. С ним поставляются VLC, 7-Zip, Audacity и бесчисленные приложения на Electron. Он бесплатен, создаёт небольшие установщики и делает ровно то, что написано в скрипте. Но именно скрипт многих и останавливает: приходится учить макроязык, чтобы получить мастер установки, который большинству приложений и так нужен в одном и том же виде. Это руководство показывает, из чего состоит скрипт и как получить тот же инсталлятор, не написав его.

Что делает NSIS

makensis компилирует текстовый скрипт (.nsi) в самодостаточный Setup.exe. Скрипт описывает страницы мастера, устанавливаемые файлы, создаваемые ярлыки и записи реестра, а также секцию удаления, которая всё это откатывает. С Modern UI (MUI2.nsh) вы получаете привычные страницы приветствия, лицензии, выбора папки, прогресса и завершения, переведённые на десятки языков.

Результат компактен: solid-сжатие LZMA часто выигрывает у zip-архива с теми же файлами. Установщики без дополнительных усилий поддерживают тихий режим (/S) и пользовательскую папку установки (/D=).

Как выглядит скрипт

Минимальный, но реалистичный скрипт для папки приложения занимает около восьмидесяти строк. Каркас:

!include MUI2.nsh
Name "My App"
OutFile "Setup.exe"
InstallDir "$PROGRAMFILES64\My App"
RequestExecutionLevel admin

!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "license.txt"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"

Section "Install"
  SetOutPath "$INSTDIR"
  File /r "app\*"
  WriteUninstaller "$INSTDIR\uninstall.exe"
  CreateShortcut "$SMPROGRAMS\My App.lnk" "$INSTDIR\MyApp.exe"
  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\My App" "DisplayName" "My App"
  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\My App" "UninstallString" "$INSTDIR\uninstall.exe"
SectionEnd

Section "Uninstall"
  Delete "$INSTDIR\MyApp.exe"
  RMDir /r "$INSTDIR"
  Delete "$SMPROGRAMS\My App.lnk"
  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\My App"
SectionEnd

Настоящий скрипт растёт дальше: информация о версии для свойств файла, ярлык на рабочем столе, 64-битные представления реестра, установка для текущего пользователя в $LOCALAPPDATA, диалог выбора языка, «запустить после установки», оценочный размер для «Параметров» Windows и деинсталлятор, который удаляет только установленные им файлы, а не всю папку (пользователи действительно кладут свои файлы рядом с приложениями). Каждый пункт — это несколько строк, и в каждом есть где ошибиться в деталях.

Как получить тот же инсталлятор из формы

ExeTup — это конструктор NSIS-инсталляторов: по вашим ответам он генерирует скрипт вроде приведённого выше, компилирует его с помощью makensis в облаке и отдаёт вам Setup.exe. Что нужно заполнить:

  • Файлы: zip-архив папки приложения или один .exe, плюс необязательные «другие файлы», которые установятся рядом.
  • Сведения: название, версия, издатель, сайт, текст лицензии.
  • Параметры: для всех пользователей или только для текущего, 64 или 32 бита, ярлыки в меню «Пуск» и на рабочем столе, запуск после установки, автозапуск при старте системы.
  • Языки: любые из пятнадцати, с диалогом выбора языка NSIS, если выбрано больше одного.
  • Значок: файл .ico для установщика и ярлыков.

На выходе — стандартный NSIS-инсталлятор с Modern UI, solid-сжатием LZMA, деинсталлятором, зарегистрированным в «Параметрах» Windows, информацией о версии в свойствах файла и тихой установкой через /S. Каждое введённое вами значение экранируется, прежде чем попасть в скрипт, и это важно: скрипты NSIS могут выполнять команды на этапе компиляции.

Когда писать скрипт самому

Пишите NSIS вручную, если вам нужны собственные страницы, плагины, условные секции, установка служб или интеграция с CI-конвейером, который уже собирает проект на Windows. Документация NSIS и поставляемые с ним примеры хороши. Для приложения, которому нужны стандартный мастер, ярлыки и деинсталлятор, генерировать скрипт быстрее, а ошибиться сложнее.

Частые вопросы

Это настоящий NSIS-инсталлятор?

Да. ExeTup генерирует скрипт NSIS и компилирует его официальным makensis. Setup.exe ведёт себя как любой инсталлятор NSIS, включая ключи /S и /D=.

Можно ли скачать сгенерированный скрипт .nsi?

Скрипт генерируется из ваших настроек в момент сборки. Скачиваете вы сам установщик; его параметры видны в предпросмотре до сборки.

Работает ли NSIS на Mac или Linux?

makensis компилируется на всех трёх платформах, а Homebrew и apt предлагают его в виде пакета. Скрипт при этом всё равно пишете вы. ExeTup нужен только браузер; см. сборку установщика Windows на Mac.

Какие языки поддерживаются?

Английский, упрощённый китайский, хинди, испанский, французский, арабский, бразильский португальский, русский, индонезийский, немецкий, японский, турецкий, корейский, вьетнамский и итальянский — с собственными переводами NSIS.

Похожие руководства