Create Windows Installer (MSI) Packages using NSIS

I’ve written a fair amount of code in my IT career and released a good number of Windows programs also. A good tool to create Windows installer packages was always key. Each program would have a different set of needs, such as scripts, DLLs, security settings, etc, so one tool to create any type of complex Installer package was necessary.

If you have the money or you need tons of support, you can always go with InstallShield, the solid choice for many companies using Windows. We always used InstallShield in our early days as it came packaged with Visual Studio and Visual Foxpro.

However, it is not the only good MSI package creator software out there. If you love open source software, you may want to check out the Nullsoft Scriptable Install System (NSIS).

NSIS is a professional system that you can use to create everything from very simple to very complex Windows installers. It’s small, yet has a large feature set, which makes it suitable for Internet distribution.

As you can tell by the name, NSIS is script-based, which allows you to create logic as complicated as you want to handle any situation. Luckily, for beginners, it also includes a bunch of plug-ins and pre-defined scripts to get you started.

Some big name companies use this program to create their installers, such as WinAmp, eMule, and 3DNA.

create installer packages

create msi package

create msi installer

As you can see from above, the screens are very professional looking and can be customized to include logos, images, or other extra features and options. Here is a short list of some of my favorite features of this MSI package creator:

  • Ability to create Windows installers that can install, uninstall, set system settings, extract files, and more.
  • NSIS has an overheard of only 34KB! It is by far the smallest Windows installer compared to InstallShield and Wise.
  • Compatible with all major version of Windows including 95, 98, ME, 2000, NT, XP, Vista, and Server 2003.
  • Three compression methods (ZLib, BZip2, LZMA) to ensure the greatest compression for your installer packages. Also, no need to create self-extracting archive files since the installer package itself is compressed.
  • Script based installer is better than other programs that just generate a list of files and registry keys. Using the script language, you can perform many different installation tasks like upgrades, version checks, system reboots, modification of environment variables, access to Windows API and more.
  • Supports up to 40 languages in one installer package that are already included with the software. Right-to-Left languages are fully supported also.
  • Create custom dialogs and interfaces to include user input, configuration options, and even a custom wizard interface.
  • Extend the capabilities of NSIS with plug-ins that can communicate with the installer. You can either write your own in C, C++ or you can use some of the pre-created ones.
  • Support for web installation and file patching across the Internet.

The programs supports a tons of other features including installer self-verification using checksum, list and tree for component selection, silent mode for automated installations, full code editor for writing scripts, etc.

create windows installer

The list just goes on and on! Overall, it’s a great tool to create MSI packages for small shops that don’t want to spend on more expensive programs. For simple installers, it’s definitely the way to go, since it can handle most programs without having to write code, etc. It’s also great for advanced program installations, but you will have be more technically savvy. Enjoy!

Comments [15]

  1. NSIS doesn't make .MSI files. NSIS makes .EXE installers, which are different and can't be installed using Windows Installer like .MSIs.

  2. Yeah, WTF? You can't use MSI as a generic term for an installer. It's a very specific package format that NSIS doesn't create. Thanks for wasting my time.

  3. Agreed. Time to update the title of the article before this list of complaints gets any longer.

  4. Yeah, you totally confused me, MSI is pretty problematic in NSIS, I am figuring this out at the moment. Reading your article made me think that NSIS supports it natively, which is false.

  5. Indeed this aricle is very confusing and the information in it does not add much information to what is commonly known.

    The title suggest NSIS creates MSI's wich it can't.

  6. Take off the msi title, it can't do that.

  7. This article is misleading. A MSI-Database has a strict format that can only be used by the MSI-Installer-Service. This Software generate a completly unique exe, that isn't compatible with the MSI-Installer-Service. This article is wrong. /Out

  8. Thanks to the commenters above for pointing out that NSIS does not make MSI installers. You saved me from wasting time investigating it!

  9. I think the article needs an update to point out the difference. It's the top result on Google

  10. This article is totally misleading, irresponsible and needs to be REMOVED.

    NSIS cannot create Windows Installer Packages (aka MSI) and therefore NSIS installers cannot be used together with regular MSI deploying techniques.

  11. Obviously this guy must have coded lots of crap softaware that is bugged since he's too dumb to change the topic which is misleading. MSI is very specific and not even close to what he thinks. Oh well, guess it's the only way he can get traffic here, and i thought i had noclass… very sad indeed.

  12. I was expecting to see how to create MSI packages with NSIS.

  13. You can create .msi files from an open source product if you use WiX (Windows Installer XML) toolset. The url is

  14. While you can’t produce MSIs with NSIS, you *CAN* wrap the executables that NSIS produces inside an MSI using the “MSI Wrapper” program, it can even pass your command line arguments from the MSI on to the NSIS executable. You can grab MSI wrapper here:

Leave a Reply

Your email address will not be published. Required fields are marked *