Creazione di un setup con NSIS
-Innanzitutto cos'è NSIS?
E' un programma opensource, che per mezzo di script, permette la creazione di setup d'installazione o più semplicemente degli eseguibili per la distribuzione delle vostre applicazioni.
Chi non conosce questa schermata?
Ebbene si è stata fatta con NSIS, che a sua volta è stato creato dai creatori di Winamp (NullSoft), il celebre player multimediale.
L'installazione permette anche la creazione del processo inverso, cioè la disinstallazione.
La prima cosa da fare per utilizzarlo è scaricare il compilatore degli script a QUESTO indirizzo.
Per i più pigri consiglio l'installazione anche del generatore automatico di script opensource anche questo.
Ecco l'esempio di un semplice script
!include "MUI.nsh"
Name 'nomeprogramma'
OutFile 'nomeprogramma.exe'
SilentInstall Normal
CRCCheck On
ComponentText 'testo di presentazione'
AutoCloseWindow False
ShowInstDetails Show
DirText 'Seleziona la directory di installazione'
InstallDir '$PROGRAMFILES\nomeprogramma'
InstallDirRegKey HKEY_LOCAL_MACHINE SOFTWARE\nomeprogramma ""
BrandingText "by Azienda"
SetCompress Auto
SetDateSave On
SetDataBlockOptimize On
!define MUI_ABORTWARNING
!define MUI_ICON "percorsoicona.ico"
!define MUI_UNICON "percorsoicona.ico"
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "percorsolicenza.txt"
var ICONS_GROUP
!define MUI_STARTMENUPAGE_NODISABLE
!define MUI_STARTMENUPAGE_DEFAULTFOLDER "nomeprogramma"
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM"
!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\nomeprogramma"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu"!insertmacro MUI_PAGE_STARTMENU Application $ICONS_GROUP
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
!insertmacro MUI_LANGUAGE "Italian"
Section '!nomeprogramma (Richiesto)'
SetOutPath $INSTDIR
SetOverwrite on
File /r "filediinstallazione\*.*"
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
CreateDirectory "$SMPROGRAMS\$ICONS_GROUP"
CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\nomeprogramma.lnk" "$INSTDIR\nomeprogramma.exe"
CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
CreateShortCut "$DESKTOP\nomeprogramma.lnk" "$INSTDIR\nomeprogramma.exe"
!insertmacro MUI_STARTMENU_WRITE_END
WriteUninstaller $INSTDIR\Uninstall.exe
SectionEnd
Section -post
WriteRegStr HKLM SOFTWARE\nomeprogramma "" $INSTDIR
#Uninstall key
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OltreB2" "DisplayName" "nomeprogramma"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OltreB2" "DisplayIcon" "percorsoicona.ico"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OltreB2" "DisplayVersion" "versione"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OltreB2" "UninstallString" "$INSTDIR\Uninstall.exe"
SectionEnd
Section Uninstall
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\nomeprogramma"
DeleteRegKey HKLM "SOFTWARE\nomeprogramma"
Delete "$SMPROGRAMS\$ICONS_GROUP"
Delete "$DESKTOP\nomeprogramma.lnk"
RMDir /r "$INSTDIR\"
SectionEnd
Peccato per la brutta formattazione ma lo script è funzionante al 100% ed è completo di disinstallazione oltre ad essere abbastanza personalizzato.
Io ho cominciato ad usarlo da una settimana, ma ho già creato un setup per un applicativo che richiede la verifica di IIS, verifica del Framework installato, verifica di SQL Server prima di essere installato o altrimenti procede alla loro installazione, creazione/rimozione di cartelle virtuali ecc.
QUI una lista di tutte le personalizzazioni che potete applicare ai vostri scripts.
QUI il manuale d'istruzioni per l'utilizzo di NSIS.
10 commenti :
onestamente non conosco quella schermata....forse perche' lavoro con un mac...
cmq bel sito!
Probabilmente per il setup d'installazione di Amule non hanno usato NSIS.
Io non ho un mac :-)
Grazie
Ottimo programma... mi servirebbe un aiuto per la creazione di un pacchetto per un applicazione vb.net quindi ho necessita di verificare la presenza di questo "motore" e eventualmente installarlo... mi aiuteresti?
quindi ti interessa verificare la presenza del framework sul pc dove andrai ad installare il programma?
si ma anche eventualmente installarlo se manca (lo implemento nella lista di file da copiare)...
Questo Link vale piu di mille parole
ciao.
due domande per cortesia:
1.che tu sappia esite qualche guida
in italiano?
2.conosci il nome di qualche altro programma che ha le stesse funzioni?
Grazie
Simone
ciao Simone
1- guide in italiano vicine allo 0...trovi poco o niente...forse qualche esempio, almeno ti parlo di quando ho cercato io fino a circa un mesetto fa
2- a mente mi viene InnoSetup, se vuoi faccio una ricerca rapida per elencarteli
Salve,
Ho provato lo script e va che è una meraviglia, però mi trovo davanti a un problema.
Considerato che il mio software è realizzato in VB6, devo installare tutte le librerie del caso e componenti dll e ocx da me realizzati.
Non ho trovato nulla, mi puoi aiutare?
Grazie
le librerie vb6 di solito hanno un pacchetto d'installazione quindi potresti copiare questo setup nella stessa directory del setup che stai creando e lanciarlo durante l'esecuzione con EXECWAIT o EXECSHELL.
Mentre le tue dll e componenti ocx che probabilmente saranno nella stessa directory dove andrai ad installare il tuo programma le puoi registrare con EXECSHELL "REGSVR32 file.dll"
Posta un commento