NSIS (Nullsoft Scriptable Install System) is a small, efficient, capable, professional open source system to create Windows installers. It is designed to be as small and flexible as possible and is therefore very suitable for internet distribution.
Being a user’s first experience with your product, a stable and reliable installer is an important component of succesful software. With NSIS you can create such installers that are capable of doing everything that is needed to setup your software.
NSIS is script-based and allows you to create the logic to handle even the most complex installation tasks. Many plug-ins and scripts are already available. You can create web installers, communicate with Windows and other software components. Also you can install or update shared components and more.
NSIS (Nullsoft Scriptable Install System) Features:
- Generates self-contained executable installers
- Support for ZLib, BZip2 and LZMA data compression
- 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 (including RTL languages) in one installer. More than 40 translations are already available, but you can also create your own.
- 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 included plug-ins for creation of custom dialogs, internet connections, HTTP downloading, file patching, Win32 API calls, etc.
- Installers can be as large as 2GB
- Optional silent mode for automated installations
- A preprocessor with support for defined symbols, macros, 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/unregistration
- 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 behavior commands (such as show/hide/wait/etc.)
- User functions in script
- Callback functions for user actions
- Added PEAddResource and PERemoveResource
- Added LoadAndSetImage
- Allow quoted library path in System::Call
- Improved nsExec Unicode and tab output parsing
- Added experimental ManifestLongPathAware attribute
- %1 in !finalize command can be specified multiple times
- Fixed -O stderr stream issue
- Fixed InstallLib .NSI space-in-path bug
- StrFunc now supports a “using” idiom to help with forward-declaration of functions
- Added SectionInstType
- Zero uninitialized data in icon group
- Automatically doubles ampersands in the Name attribute
- Fixed nsDialogs CB/LB_Get/SetItemData macros
- Updated Hindi and Portuguese
Homepage – https://nsis.sourceforge.io