Nullsoft skriptbart installationssystem

Nullsoft skriptbart installationssystem
Originalförfattare Nullsoft
Utvecklare NSIS Team och NSIS Community
Initial release 31 juli 2000 ; 22 år sedan ( 2000-07-31 )
Stabil frisättning
3.08 / 25 september 2021 ; 17 månader sedan ( 2021-09-25 )
Förvar
Skrivet i C , C++
Operativ system Windows , Mac OS X
Typ Verktyg för mjukvaruutveckling
Licens zlib-licens
Hemsida nsis .sourceforge .io

Nullsoft Scriptable Install System ( NSIS ) är ett skriptdrivet installationsverktyg för Microsoft Windows med stöd av Nullsoft , skaparna av Winamp . NSIS släpps under en kombination av fri mjukvarulicenser , främst zlib-licensen . Det har blivit ett allmänt använt alternativ till kommersiella proprietära produkter som InstallShield , med användare inklusive Amazon , Dropbox , Google , Ubisoft , FL Studio , BitTorrent och McAfee .

Historia

NSIS skapades för att distribuera Winamp . Den är baserad på en tidigare Nullsoft-produkt, PiMP (plugin Mini Packager), och är även känd som SuperPiMP. Efter version 2.0a0 flyttades projektet till SourceForge där utvecklare utanför Nullsoft började arbeta med det regelbundet. NSIS 2.0 släpptes ungefär två år senare.

NSIS version 1 liknar på många sätt den klassiska Windows Installer , men den stöder fler komprimeringsformat. NSIS version 2 har ett nytt strömlinjeformat grafiskt användargränssnitt och stöder LZMA- komprimering, flera språk och ett lättanvänt pluginsystem.

I januari 2006 var NSIS SourceForges månadens projekt.

Manusexempel

Hej världen!

 

  

  
  

  
     
   


 
 !inkludera  "MUI.nsh"  !insertmacro  MUI_LANGUAGE  "Engelska"  Namn  "Hej världen!"  # Namn på installationsprogrammet.  OutFile  "HelloWorld.exe"  # Namn på installationsfilen.  Funktion  .onInit  # Funktion som kommer att köras vid uppstart av installationsprogrammet.  MessageBox  MB_OK  |  MB_ICONINFORMATION  "Hej värld!"  # Visa ett meddelande som säger "Hej världen!".  Avsluta  # Stäng installationsprogrammet eftersom detta är ett enkelt "Hej världen!" installatör.   FunctionEnd  Sektion  # Värdelöst avsnitt eftersom detta är ett enkelt "Hej världen!" installatör.   Avsnittsslut 

Enkel installation

 

  

  
  
  
  

  

  
  
  
  

  
  
 !include  "MUI.nsh"  !define  MUI_ABORTWARNING  # Detta kommer att varna användaren om de avslutar installationsprogrammet.  !insertmacro  MUI_PAGE_WELCOME  # Välkommen till installationssidan.  !insertmacro  MUI_PAGE_DIRECTORY  # I vilken mapp installationssida.  !insertmacro  MUI_PAGE_INSTFILES  # Installationssida.  !insertmacro  MUI_PAGE_FINISH  # Slutförd installationssida.  !insertmacro  MUI_LANGUAGE  "Engelska"  Namn  "MyApp"  # Namn på installationsprogrammet (vanligtvis namnet på programmet som ska installeras).  OutFile  "MyAppInstaller.exe"  # Namn på installationsfilen.  InstallDir  "  $PROGRAMFILES  \MyApp"  # Standardinstallationsmapp ($PROGRAMFILES är mappen Program Files).  ShowInstDetails  show  # Detta visar alltid installationsdetaljerna.  Avsnitt  "MyApp"  # I det här avsnittet lägg till dina filer eller dina mappar.  # Lägg till dina filer med "Fil (filens namn)", exempel: "Fil "$DESKTOP\MyApp.exe"" ($DESKTOP är skrivbordsmappen); eller lägg alltid till dina mappar med "File (Mappens namn)\*", lägg alltid till dina mappar med en asterisk, till exempel: "File /r $DESKTOP\MyApp\*" (detta lägger till sina filer och (med /r) dess undermappar)).   Avsnittsslut 

Enkelt installationsprogram som lägger till en genväg i startmenyn och kommer med ett avinstallationsprogram


 
 

 
 

 
 


 
    
     
 
    
     
 
    
      
      

      


 

 
 
    
     
 
    
     
     
 
     


 # definiera namnet på installationsprogrammet  OutFile  "InstallMyApp"  # definiera installationskatalogen  InstallDir  $LOCALAPPDATA  \  Program  \  myapp  # För att ta bort genvägen på startmenyn i Windows 7  RequestExecutionLevel  användare  # start standard avsnitt  Avsnitt  # ange installationskatalogen som destination för följande åtgärder  SetOutPath  $ INSTDIR  # skapa avinstallationsprogrammet  WriteUninstaller  "  $INSTDIR  \uninstall.exe"  # peka på den nya genvägen mot programmets avinstallationsprogram  CreateShortcut  "  $SMPROGRAMS  \My App.lnk"  "  $INSTDIR  \myapp.exe"  CreateShortcut  "  $SMPROGRAMS  \My App Uninstall. lnk"  "  $INSTDIR  \uninstall.exe"  Fil  /r  "C:\sökväg\to\where\my\files\are\*" Avsnitt  Slut  # avinstallationsavsnitt start  Avsnitt  "avinstallera"  # först, ta bort avinstallationsprogrammet  Ta bort  "  $INSTDIR  \uninstall.exe"  # sekund, ta bort länken från startmenyn  Ta bort  "  $SMPROGRAMS  \My App.lnk"  Ta bort  "  $SMPROGRAMS  \My App Uninstall.lnk"  Ta bort  $INSTDIR  # avinstallationsavsnitt end  SectionEnd 

Begrepp

NSIS 1,98

Manus

NSIS-kompilatorprogrammet makensis kompilerar skript som följande exempel till körbara installationsprogram. Varje rad i skriptet innehåller ett enda kommando.


 
 
 
 
 

   
   
 # Exempel på skriptnamn  "  Example1  "  OutFile  "jubaowu.exe"  InstallDir  "  $PROGRAMFILES  \Example1"  Sidkatalog  Sida  InstFiles  Sektion  SetOutPath  $INSTDIR-  fil  ..  \  makensis.exe  SectionEnd 

Modernt användargränssnitt

Version 2.0 introducerade ett nytt valfritt strömlinjeformat grafiskt användargränssnitt som heter Modern UI ( MUI). MUI har ett guideliknande gränssnitt. Den stöder en välkomstsida, slutsida, språkvalsdialog, beskrivningsområde för komponenter och fler anpassningsalternativ än det gamla användargränssnittet.


 
 
 
 
  
 
 
 
 
  
  
  
 
   
   
 # Modernt UI-exempelskript  !include  MUI.nsh  Namn  "Example 2"  OutFile  "Example2.exe"  !insertmacro  MUI_PAGE_WELCOME  !insertmacro  MUI_PAGE_LICENSE  "  license.rtf" !  insertmacro  MUI_PAGE_DIRECTORY  MUI_PAGE_DIRECTORY  MUI_ENTSMAcroPUI_INSert MUI_ONSAGE  ! TFILES !insertmacro  MUI_PAGE_FINISH  !  insertmacro  MUI_LANGUAGE  "engelska"  !insertmacro  MUI_LANGUAGE  "Tyska"  !insertmacro  MUI_LANGUAGE  "Franska"  Sektionen  "Extrahera makensis"  SetOutPath  $INSTDIR  -fil  ..  \  makensis.exe  SectionEnd 

Sedan NSIS version 2.30 (släppt den 25 augusti 2007) finns en ny version (beta) av detta användargränssnitt tillgängligt: ​​Modern UI 2 (MUI2) som är en förbättring av Modern UI. Till skillnad från det gamla MUI är denna version baserad på nsDialogs istället för gammaldags InstallOptions .ini-filer.

Från version 2.34 (släppt den 24 december 2007) är denna MUI2 redo för masskonsumtion och den ingår i alla NSIS-paket. Alla exempel hade också bytts till det.

Modern UI 2-dokumentation.

Grafiska gränssnitt

NSIS-projekt kan konfigureras genom att helt enkelt redigera textfiler (med tillägget .nsi). Flera tredje parter tillhandahåller dock redigeringsprogram:

  • EclipseNSIS är en modul för Eclipse -plattformen. Det gör att NSIS-skript kan redigeras, kompileras och valideras.
  • HM NIS Edit (freeware) editor med stöd för anpassade C++ eller Delphi plug-ins.
  • Venis (gratisprogram) editor
  • Visual & Installer är ett tillägg som integrerar NSIS med Microsoft Visual Studio IDE och gör det möjligt att skapa och bygga NSIS-projekt direkt i det.

Installatörens gränssnitt

Flera projekt som utökar eller ersätter det moderna användargränssnittet har startat under de senaste åren. Gränssnitt som ExperienceUI och UltraModernUI ändrar helt stilen på installationsprogrammet genom att skinna det så att det ser ut som InstallShield -gränssnittet. Andra gränssnitt som installSpiderUI syftar till ett mer minimalistiskt tillvägagångssätt på den visuella sidan av saker och ting samtidigt som samma nivå av funktionalitet som ASD:n bibehålls.

Plugins

NSIS kan utökas med plugins som kan kommunicera med installatören. Plugins kan skrivas i vilket ohanterat programmeringsspråk som helst som kan bygga ett dynamiskt länkbibliotek (som C, C++ eller Delphi), och de kan användas för att utföra installationsuppgifter eller utöka installationsgränssnittet. En plugin kan anropas med en enda rad NSIS-kod.

Flera plugins kommer med NSIS-paketet som tillåter installationsprogrammet att visa en startskärm, visa en anpassad sida, visa en bild i bakgrunden, ladda ner filer från en webbplats, utföra matematiska operationer, korrigera filer och mer.

Andra plugins är tillgängliga online, inklusive ZipDLL och ett Python- plugin.

Funktioner

NSIS stöder följande funktioner:

Genererad installatör

Det genererade installationsprogrammet är en Portable Executable , med installationsfilerna arkiverade i installationsprogrammet, en 34 KB overhead för NSIS-installationsprogrammet och installationsskriptet kompilerat till körbar kod. Eftersom installationsskriptet kompileras kan skriptet inte erhållas från den levererade körbara filen utan omvänd konstruktion av binären.

Arkivet kan packas upp med 7-Zip , Total Commander -plugin InstallExplorer eller FAR Manager- plugin InstallExplorer.

Arkivet innehåller flera mappar:

  • $PLUGINSDIR : installationsrutinplugin
  • $INSTDIR : filer som används under installationen
  • $_OUTDIR : filer som ska installeras.

Det genererade installationsprogrammet innehåller kommandoradsargument för att ge användarna mer kontroll:

  • /NCRC inaktiverar CRC-kontrollen, om inte skriptet tvingar fram det
  • /S kör installationsprogrammet/avinstallationsprogrammet tyst.
  • /D ställer in standardinstallationskatalogen. Det måste vara den sista parametern och får inte innehålla några citattecken. Endast absoluta vägar stöds.

Unicode-stöd

Versioner av NSIS före 3.0 stödde inte Unicode, utan endast ett sätt att konvertera vissa filer till olika kodningar via en plugin. En variant av NSIS som har fullt Unicode-stöd finns dock tillgänglig. Anmärkningsvärda projekt som använder denna variant är:

Med lanseringen av version 3.0 av NSIS kan Unicode-stöd implementeras med hjälp av kompilatordirektivet "Unicode true". Detta ger fullt Unicode-stöd utan ytterligare kodändringar, men installationsprogrammet kommer inte att köras under Windows 95/98/Me. Från och med 2016 före 3.0-releasen var NSIS tillgängligt i PortableApps -formatet för Unicode 2.46.5 Rev 3 och ANSI 2.51.

Se även

externa länkar