Introduction
What is FireNSIS Studio?
Is a desktop application developed for allow developers to fast creation of their software installation using the famous NSIS installer system,because nsis is a scripting system, normally you need to learn it's language and if you aren't interested to learn a new language FireNSIS is for you! because give you the power of a simple User Interface, at the moment of the writing of this article FireNSIS is a CTP release Comunity Tecnology Preview and probally you can find a bugs, if you find them please let me know.
As it Works?
It use the command line executable of nsis (makensis.exe) that compile a .nsi a nullsoft script file, FireNSIS Studio it simply generate a .nsi from runtimes informations,and the generated script is automatically compiled from the IDE without the need of open a command line you simple click on the Build button of the toolbar.
Usage Example
FireNSIS is very simple to use, next example is provided as guidelines for starting immediately with it, next you can see how to create an installer for my other application FireEdit.
1) Go on the Setup Files section, and click on the Add New Directory button, and give it the name FireEdit
Now add FireEdit Files by clicking on the Add Folder Button, and browse for the root directory where are all needed files, see the next image
Now you have added the Contents of FireEdit directory to the project with all sub folders and files, if you need to remove a file or a directory you can simply use the buttons on the toolbar, now is the moment to add the shorcut for the application, go on the ShortCuts section and click the button add folder and input it as dotnetfireball.org next select dotnetfireball.org folder and clik add folder button and input FireEdit, next click the add shorcut button is the five button from the right on the toolbar, select it and edit it properties from the property grid on the right with the value you can see on the next image.
you can add more shortcut's or delete it for your needs,$INSTDIR is a NSIS constant that correspond to the install directory of your application, other possible constant are:
These Constant and it's documentation is grabbed from official NSIS documentation
$PROGRAMFILES
The program files directory (usually C:\Program Files but detected at runtime).
$COMMONFILES
The common files directory. This is a directory for components that are shared across applications (usually C:\Program Files\Common Files but detected at runtime). $DESKTOP
The windows desktop directory (usually C:\windows\desktop but detected at runtime). The context of this constant (All Users or Current user) depends on the SetShellVarContext setting. The default is the current user.
$WINDIR
The windows directory (usually C:\windows or C:\winnt but detected at runtime).
$SYSDIR
The windows system directory (usually C:\windows\system or C:\winnt\system32 but detected at runtime).
$TEMP
The system temporary directory (usually C:\windows\temp but detected at runtime).
$STARTMENU
The start menu folder (useful in adding start menu items using CreateShortCut). The context of this constant (All Users or Current user) depends on the SetShellVarContext setting. The default is the current user.
$SMPROGRAMS
The start menu programs folder (use this whenever you want $STARTMENU\Programs). The context of this constant (All Users or Current user) depends on the SetShellVarContext setting. The default is the current user.
$SMSTARTUP
The start menu programs / startup folder. The context of this constant (All Users or Current user) depends on the SetShellVarContext setting. The default is the current user.
$QUICKLAUNCH
The quick launch folder for IE4 active desktop and above. If quick launch is not available, simply returns the same as $TEMP.
$DOCUMENTS
The documents directory. A typical path for the current user is C:\Documents and Settings\Foo\My Documents. The context of this constant (All Users or Current user) depends on the SetShellVarContext setting. The default is the current user.
This constant is not available on Windows 95 with Internet Explorer 4 not installed.
$SENDTO
The directory that contains Send To menu shortcut items.
$RECENT
The directory that contains shortcuts to the user's recently used documents.
$FAVORITES
The directory that contains shortcuts to the user's favorite websites, documents, etc. The context of this constant (All Users or Current user) depends on the SetShellVarContext setting. The default is the current user.
This constant is not available on Windows 95 with Internet Explorer 4 not installed.
$MUSIC
The user's music files directory. The context of this constant (All Users or Current user) depends on the SetShellVarContext setting. The default is the current user.
This constant is available on Windows XP, ME and above.
$PICTURES
The user's picture files directory. The context of this constant (All Users or Current user) depends on the SetShellVarContext setting. The default is the current user.
This constant is available on Windows 2000, XP, ME and above.
$VIDEOS
The user's video files directory. The context of this constant (All Users or Current user) depends on the SetShellVarContext setting. The default is the current user.
This constant is available on Windows XP, ME and above.
$NETHOOD
The directory that contains link objects that may exist in the My Network Places/Network Neighborhood folder.
This constant is not available on Windows 95 with Internet Explorer 4 and Active Desktop not installed.
$FONTS
The system's fonts directory.
$TEMPLATES
The document templates directory. The context of this constant (All Users or Current user) depends on the SetShellVarContext setting. The default is the current user.
$APPDATA
The application data directory. Detection of the current user path requires Internet Explorer 4 and above. Detection of the all users path requires Internet Explorer 5 and above. The context of this constant (All Users or Current user) depends on the SetShellVarContext setting. The default is the current user.
This constant is not available on Windows 95 with Internet Explorer 4 and Active Desktop not installed.
$LOCALAPPDATA
The local (nonroaming) application data directory.
This constant is available on Windows 2000 and above.
$PRINTHOOD
The directory that contains link objects that may exist in the Printers folder.
This constant is not available on Windows 95 and Windows 98.
$INTERNET_CACHE
Internet Explorer's temporary internet files directory.
This constant is not available on Windows 95 and Windows NT with Internet Explorer 4 and Active Desktop not installed.
$COOKIES
Internet Explorer's cookies directory.
This constant is not available on Windows 95 and Windows NT with Internet Explorer 4 and Active Desktop not installed.
$HISTORY
Internet Explorer's history directory.
This constant is not available on Windows 95 and Windows NT with Internet Explorer 4 and Active Desktop not installed.
$PROFILE
The user's profile directory. A typical path is C:\Documents and Settings\Foo.
This constant is available on Windows 2000 and above.
$ADMINTOOLS
A directory where administrative tools are kept. The context of this constant (All Users or Current user) depends on the SetSellVarContext setting. The default is the current user.
This constant is available on Windows 2000, ME and above.
$RESOURCES
The resources directory that stores themes and other Windows resources (usually C:\Windows\Resources but detected at runtime).
This constant is available on Windows XP and above.
$RESOURCES_LOCALIZED
The localized resources directory that stores themes and other Windows resources (usually C:\Windows\Resources\1033 but detected at runtime).
This constant is available on Windows XP and above.
$CDBURN_AREA
A directory where files awaiting to be burned to CD are stored.
This constant is available on Windows XP and above.
Now you need to set the output installer executable name and the Output Directory for your installation for do this goto on the Properties section, and set all like that on the image.
$PROGRAMFILES is one of the constant listed over, and dotnetfireball.org is my root directory used for all my projects, remember this is a sample you can try to create you installer for your project i can't provide here the source code for FireEdit.
Now you can click on the build button and after the build was completed you can test it by clicking on the Run button.
Support
If you find bug or need support please contact me on my forum http://www.dotnetfireball.net