List of all pages in nsis repository

Блог о модемах, роутерах и gpon ont терминалах.

Если Вы часто скачиваете и устанавливаете на свой компьютер игры и приложения, то скорее всего, рано или поздно, но столкнётесь с ошибкой NSIS Error, появляющейся при попытке запустить инсталлятор программы. Причём встретить её Вы можете как на современных Windows 7 и Windows 8, так и на уже устаревшей Windows XP. Там она обычно идёт с комментарием «Error launching installer» и выглядит вот так:

В это же время другие приложения могут отлично устанавливаться без каких-либо проблем. Давайте попробуем разобраться что это за ошибка, вследствие чего она может появиться и как можно её убрать?!

Аббревиатуру NSIS можно расшифровать как «Nullsoft Scriptable Install System», то есть скриптовая установочная система приложений от компании Nullsoft (оф. сайт nsis.sf.net ). Надо отметить, что разрабатывается и используется она уже довольно-таки давно. Она очень удобная и надёжная, но при том весьма простая. Я, например, пользовался ею ещё в 2003 году для распаковки одной из своих программ. Таким образом получается, что ошибка NSIS Error связана с работой конкретного установочного пакета и, как правило, не является системным сбоем операционной системы. Причин её появления может быть несколько:

1. Проблемы с целостностью установочного файла

Это самая частая причина, из-за которой может появиться сбой работы инсталляционного пакета и ошибка «NSIS Error». Если Вы скачивали программу из Интернета, то дистрибутив программы мог просто полностью не скачаться, а значит либо не запустится, либо вылетит дальше, при распаковке и установке. Попробуйте заново его скачать и запустить. Если всё то же самое — попробуйте скачать дистрибутив с другого сайта. Так же можно попробовать запустить закачку с помощью другого браузера или менеджера закачек. В случае проблемы при запуске установщика с флешки, возможно, что установщик не был полностью на неё записан, либо флешку отключили во время записи. А вот если ошибка возникает при установке игры или программы с CD или DVD-диска, то тут чаще всего причиной является грязная поверхность носителя, либо царапины.

2. Вирусы

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

При этом целостность инсталлятора нарушается, приложение не устанавливается и выскакивает ошибка «NSIS Error». Что делать? Тщательно проверить систему надёжным антивирусом с актуальными базами. А лучше несколькими. Я настоятельно рекомендую DrWeb CureIT и Kaspersky Virus Removal Tools.

3. Отсутствует свободное место на диске

При скачивании на компьютер дистрибутивов игр и программ некоторые пользователи забывают проверить есть ли для этого необходимое место на жестком диске. В этом случае может случиться так, что часть установочного пакета скачается, а когда место закончится, то файл просто сохранится с тем объёмом на которое хватило свободного пространства на диске. Само-собой, нормально он уже не запустится.

Если ничего не помогает:

Проверьте, чтобы имя файла не содержало русских букв, так как некоторые версии пакета могут к этому относиться критически. Так же нежелательно, чтобы там присутствовали пробелы или специальные символы (@,#,$,%,& и т.п.). Попробуйте отключить фаерволл и антивирус. Случается так, что совершенно нормальные программы могут быть заблокированы системой безопасности просто по подозрению. Соответственно, нормально работать такому установщику антивирус уже не даст. Ну и последний вариант — проверьте локальный диск, на который скачиваете или копируете инсталлятор, системной утилитой chkdsk . Возможно на нём присутствуют ошибки, которые препятствуют нормальной работе инсталляционного пакета.

Основные возможности NSIS

Маленький размер заголовка
NSIS создан маленьким, быстрым и эффективным. В то время как другие инсталляторы
часто добавляют заголовки в сотни килобайт или несколько мегабайт в ваши установочные данные,
полнофункциональный инсталлятор NSIS имеет в заголовке только 34 КБ.

Совместим со всеми основными версиями Windows
Вы можете создать простой инсталлятор, который совместим с Windows 95, Windows 98, Windows ME,
Windows NT, Windows 2000, Windows XP, Windows Server 2003 и Windows Vista.

Уникальные методы сжатия
Вы можете выбрать один из трёх методов сжатия файлов (ZLib, BZip2, LZMA).
Новый метод сжатия LZMA даёт лучшие результаты, чем любые другие распространённые методы.
Вам больше не нужно использовать большие самораспаковывающиеся архивы или другие приложения.
Сжатие включает 34 КБ заголовка.

Основан на сценариях
В отличие от других систем, которые могут генерировать только инсталляторы,
основанные на списке файлов и ключах реестра, NSIS имеет мощный язык сценариев.
Этот язык сценариев разработан для инсталляторов и содержит команды, которые помогают
вам выполнять множество задач установки. Вы можете легко добавить пользовательскую
логику и обработку различных обновлений, проверку версий и многое другое.
На NSIS Wiki вы можете найти больше информации.

Несколько языков в одном инсталляторе
Один инсталлятор может поддерживать множество языков интерфейса. Более 40 переводов
уже включены, но вы можете также создать файлы для вашего языка. RTL (с права на лево) языки,
такие как арабский и иврит, полностью поддерживаются.

Множество функций и проверок для целевой системы
Язык сценариев содержит команды, которые могут использоваться на целевой операционной системе.
От простых функций, таких как создание папки и до редактирования модификации файла в реестре,
модификации переменных среды окружения и перезагрузки системы. Применяя предоставляемые плагины,
вы даже можете использовать Windows API.

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

Плагины
NSIS может быть расширен с помощью подключаемых модулей (плагинов), которые могут
быть подсоединены к инсталлятору. Плагины могут быть написаны на C, C++, Delphi или
других языках и могут быть использованы для выполнения задач инсталляции или
расширения интерфейса инсталлятора. Вы можете использовать плагин с помощью одной
строки в коде сценария. Плагины могут быть также сжаты подобно другим данным установки,
и будут подключены только когда вы используете предоставляемые в них функции.

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

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

Легкочитаемые для человека форматы файлов
Формат сценариев NSIS и формат, используемый для диалоговых интерфейсов является лёгким,
документированным и «человекочитаемым». Поэтому вы можете редактировать ваши файлы в вашем
любимом редакторе. Это также позволяет автоматически генерировать сценарии.

Custom NSIS script¶

Two options are available — and . allows you to provide completely different NSIS script. For most cases it is not required as you need only to customise some aspects, but still use well-tested and maintained default NSIS script. So, is recommended.

Keep in mind — if you customize NSIS script, you should always state about it in the issue reports. And don’t expect that your issue will be resolved.

  1. Add file .
  2. Define wanted macro to customise: , , , , , , , .

    Example

    !macro customHeader
      !system "echo '' > ${BUILD_RESOURCES_DIR}/customHeader"
    !macroend
    
    !macro preInit
      ; This macro is inserted at the beginning of the NSIS .OnInit callback
      !system "echo '' > ${BUILD_RESOURCES_DIR}/preInit"
    !macroend
    
    !macro customInit
      !system "echo '' > ${BUILD_RESOURCES_DIR}/customInit"
    !macroend
    
    !macro customInstall
      !system "echo '' > ${BUILD_RESOURCES_DIR}/customInstall"
    !macroend
    
    !macro customInstallMode
      # set $isForceMachineInstall or $isForceCurrentInstall 
      # to enforce one or the other modes.
    !macroend
    
  3. and are defined.

  4. is added as (i.e. you don’t need to use to include files).
  5. and are added as .
  6. File associations macro and are still defined.
  7. All other electron-builder specific flags (e.g. ) are still defined.

Is there a way to call just when the app is installed (or uninstalled) manually and not on update?

Use .

${ifNot} ${isUpdated}
  # your code
${endIf}

Check if user is administrator

Sometimes, it’s necessary to check if an installer’s user has administrative privileges. This simple script checks for that using the «UserInfo» plugin. There’s a more sophisticated alternative at http://forums.winamp.com/showthread.php?threadid=195020, but this method seems to work fine. Another example of UserInfo can be found in the NSIS installation directory under \Examples\UserInfo\UserInfo.nsi.

# name installer
OutFile "installer.exe"
 
# default section start
Section
 
    # call UserInfo plugin to get user info.  The plugin puts the result in the stack
    UserInfo::getAccountType
   
    # pop the result from the stack into $0
    Pop $0
 
    # compare the result with the string "Admin" to see if the user is admin.
    # If match, jump 3 lines down.
    StrCmp $0 "Admin" +3
 
    # if there is not a match, print message and return
    MessageBox MB_OK "not admin: $0"
    Return
 
    # otherwise, confirm and return
    MessageBox MB_OK "is admin"
 
# default section end
SectionEnd

Концепции


NSIS 1.98

Сценарий

Программа-компилятор NSIS makensis компилирует сценарии, подобные приведенному ниже, в исполняемые программы установки. Каждая строка сценария содержит одну команду.

# Example script
Name "Example1"
OutFile "jubaowu.exe"
InstallDir "$PROGRAMFILES\Example1"
Page Directory
Page InstFiles
Section
  SetOutPath $INSTDIR
  File ..\makensis.exe
SectionEnd

Современный пользовательский интерфейс

Версия 2.0 представила новый необязательный оптимизированный графический интерфейс пользователя под названием Modern UI (MUI). MUI имеет интерфейс, подобный мастеру. Он поддерживает страницу приветствия, конечную страницу, диалог выбора языка, область описания компонентов и более широкие возможности настройки, чем старый пользовательский интерфейс.

# Modern UI example script
!include MUI.nsh
Name "Example 2"
OutFile "Example2.exe"
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "license.rtf"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "German"
!insertmacro MUI_LANGUAGE "French"
Section "Extract makensis"
  SetOutPath $INSTDIR
  File ..\makensis.exe
SectionEnd

Начиная с версии 2.30 NSIS (выпущенной 25 августа 2007 г.) доступна новая (бета) версия этого пользовательского интерфейса: Modern UI 2 (MUI2), который является усовершенствованием современного пользовательского интерфейса. В отличие от старого MUI, эта версия основана на nsDialogs, а не на устаревших файлах InstallOptions .ini.

Начиная с версии 2.34 (выпущенной 24 декабря 2007 г.) этот MUI2 готов к массовому использованию и включен во все пакеты NSIS. Также на него были переведены все примеры.

Документация по Modern UI 2.

Графические интерфейсы

Проекты NSIS можно настроить, просто отредактировав текстовые файлы (с расширением .nsi). Однако некоторые сторонние компании предоставляют программное обеспечение для редактирования:

  • EclipseNSIS — это модуль для платформы Eclipse . Он позволяет редактировать, компилировать и проверять сценарии NSIS.
  • HM NIS Edit (бесплатный) редактор с поддержкой пользовательских плагинов C ++ или Delphi .
  • Редактор Venis (бесплатное ПО)
  • Visual & Installer — это надстройка, которая интегрирует NSIS с Microsoft Visual Studio IDE и позволяет создавать и строить проекты NSIS прямо в ней.

Интерфейсы установщика

За последние несколько лет было начато несколько проектов, расширяющих или заменяющих современный интерфейс. Такие интерфейсы, как ExperienceUI и UltraModernUI, полностью меняют стиль установщика, изменяя его внешний вид, чтобы он выглядел как интерфейс InstallShield . Другие интерфейсы, такие как installSpiderUI, нацелены на более минималистичный подход к визуальной стороне вещей, сохраняя при этом тот же уровень функциональности, что и ASD.

Плагины

NSIS можно расширить с помощью подключаемых модулей, которые могут взаимодействовать с установщиком. Плагины могут быть написаны на любом неуправляемом языке программирования, способном создавать библиотеки с динамической компоновкой (например, C, C ++ или Delphi), и их можно использовать для выполнения задач установки или расширения интерфейса установщика. Плагин можно вызвать с помощью одной строки кода NSIS.

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

Другие плагины доступны в Интернете, включая ZipDLL и плагин Python .

Technical Details

NSIS instruction encoding was never designed to be stable across versions and any information listed here should be taken with a grain of salt.

Detection

  • 2.0rc1 _LANG_INVALIDCRC string changed
  • 2.35 _LANG_INVALIDCRC string changed
  • 2.45 PE.OptionalHeader.MajorImageVersion ==
  • 2.47 & v3.0b1 String: /
  • A Unicode stub imports and other wide API functions. Theses stubs support EW_FPUTWS and EW_FGETWS.
  • 2.47 & 3.0b3 SetFileSecurityA/W
  • 2.51 & 3.0b3 String:
  • 3.0rc1 StringTable: changed to .
  • 3.02 ShellExecuteA/W has been replaced by ShellExecuteExA/W.
  • 3.05 No longer links to LoadBitmapA/W
  • 3.06 Links to IIDFromString (or SHCLSIDFromString) and String:

EW_CREATESHORTCUT

  • 3.0b0 0x8000 in parm4 will disable SetWorkingDirectory
  • 3.0b3 parm4 packing changed to support larger icon index.

EW_INTCMP

3.03 parm5 is no longer a BOOL, it is a flags DWORD: bit 0x01 is set for unsigned operations and bit 0x8000 is set for 64-bit operations.

EW_INTOP

  • 2.0b4 (parm3 >= 7) operators changed because the old 7 (~ bneg) is implemented using ^
  • 3.03 Added >>> (SHR) operator (parm3 == 13)

EW_LOADANDSETIMAGE

  • 3.05 Renamed EW_SETBRANDINGIMAGE. parm2 now contains flags describing parm0 and parm1 and LR_*.
  • 3.06 parm0 is now the output var index, the other parameters shifted one place.

EW_SHELLEXEC

3.02 Parameter count changed. parm4 is SHELLEXECUTEINFO.fMask and SEE_MASK_NOCLOSEPROCESS is set for ExecShellWait.

EW_DELREG

  • 3.02 ent.offsets can also contain (shifted) KEY_WOW64_xxKEY bits.
  • 3.06 parm4: 0x04 = ONLYIFNOVALUES

1.3 Feature List

  • Generates self contained executable installers
  • Support for ZLIB, BZIP2 and LZMA data compression (files can be compressed individually or together)
  • Uninstall support (installer can generate an uninstaller)
  • Customizable user interface (dialogs, fonts, backgrounds, icons, text, checkmarks, images etc.)
  • Classic and Modern wizard interface
  • Fully multilingual, support for multiple languages in one installer. More than 60 translations are available, but you can also create your own. Unicode support allowing even more languages.
  • Page system: You can add standard wizard pages or custom pages
  • User selection of installation components, tree for component selection
  • Multiple install configurations (usually Minimal, Typical, Full), and custom configuration
  • Installer self-verification using a CRC32 checksum
  • Small overhead over compressed data size (34 KB with default options)
  • Ability to display a license agreement in text or RTF format
  • Ability to detect destination directory from the registry
  • Easy to use plug-in system (lots of plug-ins for creation of custom dialogs, internet connections, HTTP downloading, file patching, Win32 API calls etc. are included)
  • Installers can be as large as 2GB
  • Optional mode for automated installations
  • A preprocessor with support for defined symbols, macro’s, conditional compilation, standard predefines
  • A lovely coding experience with elements of PHP and assembly (includes user variables, a stack, real flow control, etc.)
  • Installers have their own VMs that let you write code that can support:
    • File extraction (with configurable overwrite parameters)
    • File/directory copying, renaming, deletion, searching
    • Plug-in DLL calling
    • DLL/ActiveX control registration/deregistration
    • Executable execution (shell execute and wait options)
    • Shortcut creation
    • Registry key reading/setting/enumerating/deleting
    • INI file reading/writing
    • Generic text file reading/writing
    • Powerful string and integer manipulation
    • Window finding based on class name or title
    • User interface manipulation (font/text setting)
    • Window message sending
    • User interaction with message boxes or custom pages
    • Branching, comparisons, etc.
    • Error checking
    • Reboot support, including delete or rename on reboot
    • Installer behaviour commands (such as show/hide/wait/etc)
    • User functions in script
    • Callback functions for user actions

Completely free for any use. See license.

Как исправить nsis error

Сообщение nsis error может появиться при установке любого программного обеспечения, устанавливаемого с помощью инсталлятора на базе nsis. Способ исправить nsis error зависит от причины, по которой эта ошибка появилась.

  1. Чаще всего причиной ошибки является нарушение целостности дистрибутива. Произойти это может из-за ошибки или сбоя при загрузке файла из Интернета, или же в результате модификации файла уже после его загрузки. В любом из этих случаев исправить nsis error достаточно просто: удалите файл дистрибутива, после чего вновь загрузите его с соответствующего сайта. Если соединение с интернет неустойчивое, а файл достаточно большого объема, то для полной загрузки файла воспользуйтесь менеджером загрузок, таким как Free Download Master или ReGet.
  2. Попробуйте найти альтернативный источник для загрузки файла. Многие программы можно загрузить с различных сайтов, содержащих коллекции программ, а также с официального сайта разработчиков программного обеспечения. Возможно, с одного из таких источников удастся загрузить неповрежденный файл.
  3. Причиной неполной загрузки дистрибутива может стать отсутствие достаточного объема свободного места на диске. Попробуйте повторить загрузку на другой диск, где имеется больше свободного пространства, или же после предварительного освобождения диска от ненужных файлов. Зачастую очистка корзины позволяет освободить достаточно много свободного места на диске.
  4. Eсли файл расположен на компакт-диске, возможно, поверхность диска повреждена. Тщательно протрите диск мягкой тканью и попробуйте вновь запустить инсталляцию. В случае неудачи попробуйте разыскать нужный дистрибутив на других дисках или в интернете.
  5. Причиной повреждения дистрибутива может стать вредоносное программное обеспечение. В этом случае проведите полную проверку системы на наличие вирусов, после чего повторите загрузку файла дистрибутива.

Simple hello world — writing text to a file

This hello world script will write «hello world» to a text file when the installer is run

# declare name of installer file
Outfile "hello world.exe"
 
# open section
Section
 
# create a popup box, with an OK button and some text
MessageBox MB_OK "Now We are Creating Hello_world.txt at Desktop!"
 
/* open an output file called "Hello_world.txt", 
on the desktop in write mode. This file does not need to exist 
before script is compiled and run */
 
FileOpen $0 "$DESKTOP\Hello_world.txt" w
 
# write the string "hello world!" to the output file
FileWrite $0 "hello world!"
 
# close the file
FileClose $0
# Show Success message.
MessageBox MB_OK "Hello_world.txt has been created successfully at Desktop!"
 
 
# end the section
SectionEnd

History [ edit ]

NSIS was created to distribute Winamp. It is based on a previous Nullsoft product, PiMP (plugin Mini Packager), and is also known as SuperPiMP. After version 2.0a0, the project was moved to SourceForge where developers outside Nullsoft started working on it on a regular basis. NSIS 2.0 was released approximately two years later.

NSIS version 1 is in many ways similar to the classic Windows Installer, but it supports more compression formats. NSIS version 2 features a new streamlined graphical user interface and supports LZMA compression, multiple languages, and an easy-to-use plugin system.

In January 2006 NSIS was SourceForge’s project of the month.

Как убрать ошибку NSIS

Ошибка NSIS  возникает при установке новой программы, если исходный файл был изменён или не загружается должным образом. Эта статья, в которой перечислены некоторые способы решения ошибок NSIS error. NSIS инсталляторы могут выполнять такие задачи, как извлечение файлов, установку, удаление и контролировать параметры системы. NSIS означает » Nullsoft Scriptable Install System’. Это open-source, сценарий и всё это предназначено для установки. NSIS создает инсталляторы для программ.

Короче, NSIS-это не программное обеспечение, которое нужно установить, это всего лишь программное обеспечение, которое облегчает installion другого программного обеспечения на вашей системе.

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

Кроме этого, важнейшим преимуществом NSIS installer является её совместимость со многими версиями Windows, тем самым позволяет создавать только один установщик.

Какие бывают ошибки NSIS Error?

Как мы знаем, NSIS инсталляторы широко используются для установки программного обеспечения. Однако, если по какой-то причине загруженный файл был изменен, появится ошибка NSIS error. Если процесс установки продолжается, несмотря на ошибку, программа не будет правильно установлена.

Причины NSIS Error

◇ Компьютер может быть заражён вирусом. ◇ Неполная загрузка программы из Интернета. ◇ Исходный файл был изменен после загрузки. ◇ Из-за аппаратной ошибки. ◇ Неправильно сделаны настройки конфигурации системы.

◇ В системе установлен межсетевой экран.

Как исправить NSIS Error

▷ Ошибка из-за вируса: возможная причина ошибки NSIS может быть проникновение вируса в вашу систему. Если в вашей системе установлена антивирусная программа, проверьте, обновление её баз virus definitions are up-to-date. Если это не так, обновите антивирус. Попробуйте запустить установщик. Если это не помогает, отключите существующее антивирусное программное обеспечение. Попробуйте установить нужную программу снова.

▷ Ошибка из-за прерванной загрузки: если загрузка программного обеспечения не выполнена, из-за причин, таких как плохое Интернет-подключение или отключение электроэнергии, сделайте очистку кэша браузера перед повторной установкой программы.

▷ Ошибка из-за измененного файла: файлом манипулировали в некотором роде при его загрузке в систему. Это одна из самых важных причин для NSIS error. Это можно устранить путем повторной загрузки установщика.

▷ Ошибка из-за аппаратных проблем: если программа будет установлена на съемный диск, CD или DVD, и если всплывает NSIS ошибка, проверьте, как открываются другие файлы с этого диска. Если нет, то это означает, что диск поврежден. Извлеките и протрите диск чистой тканью с помощью очищающей жидкости. Вставьте диск в систему и запустите программу установки.

▷ Ошибка из-за установленных брандмауэров: если firewall установлен на вашей системе, он может ограничить установку новой программы. Чтобы избежать этого, отключите Firewall settings, пока программа не будет установлена. После установки программы, брандмауэр должен быть включен.

▷ Ошибка из-за Download Manager программы: если система имеет любые ускорители, чтобы ускорить процесс загрузки, это может привести к ошибке NSIS error. Удалите все подобные программы. Запустите установщик снова.

▷ Ошибка из-за проблем с сервером: на сервере могут возникнуть некоторые технические глюки, или файл может быть поврежден на сервере. Это редкий сценарий, который нельзя избежать. Переустановите программу, чтобы проверить, если файл является подлинным. Если нет, то скачайте его повторно с доверенного сайта.

Советы и предупреждения

Если ни один из методов не работает в вашу пользу, необходимо скачать установочный файл на любой другой компьютер и скопировать файл установки на данный компьютер.

Если вы удалили антивирусную программу для решения ошибки NSIS error, убедитесь, что вы установили антивирусную программу, так как ваша система будет находиться в опасности от вирусов, если Вы не сделаете этого.

Если загруженный файл, кажется, поврежден, попробуйте скачать его с другого веб-сайта.

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

Загрузка…

Simple installer and uninstaller with start menu item

This installer will do the following: create an installer named «installer.exe»; an uninstaller on the desktop; a shortcut in the start menu that points to the uninstaller.

# define name of installer
OutFile "installer.exe"
 
# define installation directory
InstallDir $DESKTOP
 
# For removing Start Menu shortcut in Windows 7
RequestExecutionLevel user
 
# start default section
Section
 
    # set the installation directory as the destination for the following actions
    SetOutPath $INSTDIR
 
    # create the uninstaller
    WriteUninstaller "$INSTDIR\uninstall.exe"
 
    # create a shortcut named "new shortcut" in the start menu programs directory
    # point the new shortcut at the program uninstaller
    CreateShortcut "$SMPROGRAMS\new shortcut.lnk" "$INSTDIR\uninstall.exe"
SectionEnd
 
# uninstaller section start
Section "uninstall"
 
    # first, delete the uninstaller
    Delete "$INSTDIR\uninstall.exe"
 
    # second, remove the link from the start menu
    Delete "$SMPROGRAMS\new shortcut.lnk"
 
    RMDir $INSTDIR
# uninstaller section end
SectionEnd

Примеры скриптов

Привет мир!

!include "MUI.nsh"

!insertmacro MUI_LANGUAGE "English"

Name "Hello world!" # Name of the installer.
OutFile "HelloWorld.exe" # Name of the installer's file.

Function .onInit # Function that will be executed on installer's start up.
  MessageBox MB_OK|MB_ICONINFORMATION "Hello world!" # Show a message that says "Hello world!".
  Quit # Close the installer because this is a simple "Hello world!" installer.
FunctionEnd

Section # Useless section because this is a simple "Hello world!" installer.
SectionEnd

Простой установщик

!include "MUI.nsh"

!define MUI_ABORTWARNING # This will warn the user if they exit from the installer.

!insertmacro MUI_PAGE_WELCOME # Welcome to the installer page.
!insertmacro MUI_PAGE_DIRECTORY # In which folder install page.
!insertmacro MUI_PAGE_INSTFILES # Installing page.
!insertmacro MUI_PAGE_FINISH # Finished installation page.

!insertmacro MUI_LANGUAGE "English"

Name "MyApp" # Name of the installer (usually the name of the application to install).
OutFile "MyAppInstaller.exe" # Name of the installer's file.
InstallDir "$PROGRAMFILES\MyApp" # Default installing folder ($PROGRAMFILES is Program Files folder).
ShowInstDetails show # This will always show the installation details.

Section "MyApp" # In this section add your files or your folders.
  # Add your files with "File (Name of the file)", example: "File "$DESKTOP\MyApp.exe"" ($DESKTOP is Desktop folder); or add your folders always with "File (Name of the folder)\*", always add your folders with an asterisk, example: "File /r $DESKTOP\MyApp\*" (this will add its files and (with /r its subfolders)).
SectionEnd

Созданный установщик

Сгенерированный установщик представляет собой переносимый исполняемый файл с файлами установки, заархивированными в установщике, накладными расходами в 34 КБ для установщика NSIS и сценарием установки, скомпилированным в исполняемый код. Поскольку сценарий установки скомпилирован, сценарий не может быть получен из доставленного исполняемого файла без обратного проектирования двоичного файла.

Архив можно распаковать с помощью 7-Zip , плагина Total Commander InstallExplorer или плагина FAR Manager InstallExplorer.

В архиве несколько папок:

  • $ PLUGINSDIR  : плагины процедуры установки
  • $ INSTDIR  : файлы, используемые во время установки
  • $ _OUTDIR  : файлы для установки.

Созданный установщик включает аргументы командной строки, чтобы дать пользователям больше контроля:

  • / NCRC отключает проверку CRC, если сценарий не заставляет ее
  • / S запускает программу установки / удаления без вывода сообщений.
  • / D устанавливает каталог установки по умолчанию. Это должен быть последний параметр и не должен содержать кавычек. Поддерживаются только абсолютные пути.
Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий