Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

FireNSIS Studio Installer Creator

0.00/5 (No votes)
19 Feb 2006 1  
Is a desktop application developed for allow developers to fast creation of their software installation

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

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here