NSIS requires two things to be present in a script:
1) call to
OutFile function (in order to define installer's name and output directory)
2) at least one
Section (NSIS script executes
sections and each section can contain
functions and
instructions; functions contain instructions only)
So, the shortest script that compiles could be:
HelloWorld.nsi:
NSIS compiler creates
HelloWorld-installer.exe in the same directory where
HelloWorld.nsi resides. When run, installer looks like this:
If we click on
Show details button, we can see the following:
We can use
ShowInstDetails in order to make installer displaying details by default:
We can use DetailPrint in order to output our custom messages:
And so Installer displays our custom text and Details window by default:
If we want to perform some system checks when installer starts, we can place our code in predefined function
.onInit. In the next example, we'll just put displaying message box:
When we run installer, message box is first displayed:
When we click on OK, main window shows:
I used instruction
Name to customize title of Installer's windows.
We can do some more serious stuff in
.onInit function, like Windows version check. Download
GetWindowsVersion.nsh header, create directory
headers in the same directory where
HelloWorld.nsi is, place GetWindowsVersion.nsh in that new directory (as we want to keep downloaded scripts separately from our work), include that header in the script and call function it exposes -
GetWindowsVersion:
Message box displays Windows version:
NOTE: Files with extension
nsi are
installer script files and files with extension
nsh are
installer headers.
NOTE:
DetailPrint calls from
.onInit are ignored.