| Yazar | Nullsoft |
|---|---|
| Geliştirici | NSIS Ekibi ve NSIS Topluluğu |
| İlk yayınlanma | 31 Temmuz 2000 (25 yıl önce) (2000-07-31)[1] |
| Güncel sürüm | 3.10[2] |
| Kod deposu | |
| Programlama dili | C (programlama dili),C++ |
| İşletim sistemi | Windows,Mac OS X |
| Tür | Yazılım geliştirme araçları |
| Resmî sitesi | nsis.sourceforge.io |
Nullsoft Scriptable Install System (NSIS),Winamp'ın yapımcıları Nullsoft tarafından desteklenenMicrosoft Windows için komut dosyasıyla çalışan bir kurulum sihirbazı hazırlama aracıdır. NSIS, baştazlib lisansı olmak üzere,özgür yazılım lisanslarının bir kombinasyonu altında yayımlanır.[3]Amazon,Dropbox,Google,Ubisoft,FL Studio,BitTorrent veMcAfee gibi kullanıcılarla, InstallShield gibiticariözel mülk ürünlere yaygın olarak kullanılan bir alternatif haline geldi.[4]
NSIS,Winamp'ı dağıtmak için hazırlandı.[5] Önceki bir Nullsoft ürünü olan PiMP'ye (plugin Mini Packager) dayalıdır ve SuperPiMP olarak da bilinir. 2.0a0sürümünden sonra proje, Nullsoft dışındaki geliştiricilerin düzenli olarak üzerinde çalışmaya başladığıSourceForge'a taşındı. NSIS 2.0, yaklaşık iki yıl sonra yayınlandı.
NSIS sürüm 1 birçok yönden klasik Windows Installer'a benzer, ancak daha fazla sıkıştırma biçimini destekler. NSIS sürüm 2, yeni bir aerodinamikgrafik kullanıcı arabirimine sahiptir ve LZMA sıkıştırmayı, birden çok dili ve kullanımı kolay bir eklenti sistemini destekler.
Ocak 2006'da NSIS, SourceForge'un ayın projesi oldu.[6][7]
!include"MUI.nsh"!insertmacroMUI_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.MessageBoxMB_OK|MB_ICONINFORMATION"Hello world!"# Show a message that says "Hello world!".Quit# Close the installer because this is a simple "Hello world!" installer.FunctionEndSection# Useless section because this is a simple "Hello world!" installer.SectionEnd
!include"MUI.nsh"!defineMUI_ABORTWARNING# This will warn the user if they exit from the installer.!insertmacroMUI_PAGE_WELCOME# Welcome to the installer page.!insertmacroMUI_PAGE_DIRECTORY# In which folder install page.!insertmacroMUI_PAGE_INSTFILES# Installing page.!insertmacroMUI_PAGE_FINISH# Finished installation page.!insertmacroMUI_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).ShowInstDetailsshow# 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
# define name of installerOutFile"InstallMyApp"# define installation directoryInstallDir$LOCALAPPDATA\Programs\myapp# For removing Start Menu shortcut in Windows 7RequestExecutionLeveluser# start default sectionSection# set the installation directory as the destination for the following actionsSetOutPath$INSTDIR# create the uninstallerWriteUninstaller"$INSTDIR\uninstall.exe"# point the new shortcut at the program uninstallerCreateShortcut"$SMPROGRAMS\My App.lnk""$INSTDIR\myapp.exe"CreateShortcut"$SMPROGRAMS\My App Uninstall.lnk""$INSTDIR\uninstall.exe"File/r"C:\path\to\where\my\files\are\*"SectionEnd# uninstaller section startSection"uninstall"# first, delete the uninstallerDelete"$INSTDIR\uninstall.exe"# second, remove the link from the start menuDelete"$SMPROGRAMS\My App.lnk"Delete"$SMPROGRAMS\My App Uninstall.lnk"Delete$INSTDIR# uninstaller section endSectionEnd

NSIS derleyici programımakensis, aşağıdaki örnek gibi betikleri yürütülebilir yükleme programlarında derler. Komut dosyasındaki her satır tek bir komut içerir.
# Example scriptName"Example1"OutFile"jubaowu.exe"InstallDir"$PROGRAMFILES\Example1"PageDirectoryPageInstFilesSectionSetOutPath$INSTDIRFile..\makensis.exeSectionEnd
Sürüm 2.0,Modern UI (MUI) adı verilen yeni bir isteğe bağlı aerodinamik grafik kullanıcı arabirimini tanıttı. MUI, sihirbaz benzeri bir arayüze sahiptir. Bir karşılama sayfası, bitiş sayfası, dil seçimi diyaloğu, bileşenler için açıklama alanı ve eski kullanıcı arabiriminden daha fazla özelleştirme seçeneklerini destekler.
# Modern UI example script!includeMUI.nshName"Example 2"OutFile"Example2.exe"!insertmacroMUI_PAGE_WELCOME!insertmacroMUI_PAGE_LICENSE"license.rtf"!insertmacroMUI_PAGE_DIRECTORY!insertmacroMUI_PAGE_COMPONENTS!insertmacroMUI_PAGE_INSTFILES!insertmacroMUI_PAGE_FINISH!insertmacroMUI_LANGUAGE"English"!insertmacroMUI_LANGUAGE"German"!insertmacroMUI_LANGUAGE"French"Section"Extract makensis"SetOutPath$INSTDIRFile..\makensis.exeSectionEnd
NSIS sürüm 2.30'dan (25 Ağustos 2007'de yayınlandı) beri, bu kullanıcı arayüzünün yeni sürümü (beta) erişilebilir durumdadır: Modern kullanıcı arayüzünün bir geliştirmesi olan Modern kullanıcı arayüzü 2 (MUI2). Eski MUI'den farklı olarak bu sürüm, eski moda InstallOptions .ini dosyaları yerine nsDialogs'u temel alır.
2.34 sürümünden itibaren (24 Aralık 2007'de yayınlandı) bu MUI2 toplu tüketim için hazırdır ve tüm NSIS paketlerine dahildir. Ayrıca tüm örnekler ona çevrilmişti.
Modern UI 2 dokümantasyonu.
NSIS projeleri, yalnızca metin dosyalarını (.nsi uzantılı) düzenleyerek yapılandırılabilir. Ancak, birkaç üçüncü taraf düzenleme yazılımı sağlar:
Modern kullanıcı arayüzünü genişleten veya değiştiren birkaç proje son birkaç yılda başladı. ExperienceUI ve UltraModernUI gibi arabirimler, InstallShield arabirimine benzeyecek şekilde kaplamasını yaparak yükleyicinin stilini tamamen değiştirir. InstallSpiderUI gibi diğer arabirimler, ASD ile aynı işlevsellik düzeyini korurken, görsel açıdan daha minimalist bir yaklaşımı hedefler.
NSIS, yükleyici ile iletişim kurabileneklentilerle genişletilebilir. Eklentiler,dinamik bağlantı kitaplığı (C, C++ veya Delphi gibi) oluşturabilen herhangi bir yönetilmeyen programlama dilinde yazılabilir ve yükleme görevlerini gerçekleştirmek veya yükleyici arabirimini genişletmek için kullanılabilir. Bir eklenti, tek bir NSIS kodu satırıyla çağrılabilir.
NSIS paketiyle birlikte, yükleyicinin bir açılış ekranı görüntülemesine, özel bir sayfa görüntülemesine, arka planda bir resim görüntülemesine, bir web sitesinden dosya indirmesine, matematiksel işlemleri gerçekleştirmesine, yama dosyalarına ve daha fazlasına izin veren çeşitli eklentiler gelir.
ZipDLL ve birPython eklentisi dahil olmak üzere diğer eklentiler çevrimiçi olarak mevcuttur.
NSIS aşağıdaki özellikleri destekler:[8]
Oluşturulan kurulum sihirbazı, kurulum sihirbazı içinde arşivlenen yükleme dosyaları, NSIS yükleyicisi için 34 KB'lik bir ek yük,[8] ve yürütülebilir kodda derlenen yükleme komut dosyası ile bir Portable Executable'dır . Kurulum komut dosyası derlenirken, ikili dosyanın tersine mühendislik işlemi yapılmadan komut dosyası teslim edilen yürütülebilir dosyadan alınamaz.
Arşiv,7-Zip,Total Commander eklentisi InstallExplorer veya FAR Manager eklentisi InstallExplorer kullanılarak açılabilir.
Arşiv birkaç klasör içerir:
Oluşturulan yükleyici, kullanıcılara daha fazla kontrol sağlamak içinkomut satırı argümanları içerir:[9]
NSIS'in 3.0'dan önceki sürümleriUnicode'u desteklemiyordu, ancak yalnızca bazı dosyaları bir eklenti aracılığıyla farklı kodlamalara dönüştürmek için bir araçtı.[10] Ancak, tam Unicode desteğine sahip bir NSIS çeşidi mevcuttur.[11] Bu varyantı kullanan önemli projeler şunlardır:[12]
NSIS'in 3.0 sürümünün piyasaya sürülmesiyle, "Unicode true" derleyici yönergesi kullanılarak Unicode desteği uygulanabilir. Bu, daha fazla kod değişikliği olmaksızın tam Unicode desteği sağlar, ancak yükleyici Windows 95/98/Me altında çalışmaz.[13] 2016 itibarıyla, 3.0 sürümünden önce NSIS, Unicode 2.46.5 Rev 3 ve ANSI 2.51 için PortableApps formatında mevcuttu.[14]