Today I Learned

Today I Learned: Excelsior

When working in a start-up, without fail, there’s always a need for a way to install our desktop application onto customer machines in a quick/painless fashion. This in itself requires quite a bit of research (Is xcopy enough or what tool do I need to use?) and in typical fashion you need to make a decision without knowing all of the requirements.

The biggest problem with current installer technologies is that it takes a significant amount of work to get one going. Going with a scripting solution like NSIS or WiX and it’s your first time? Be prepared for the steep learning curve for both (and in the meantime you don’t have a lot to show for your work). Using an installer wizard like InstallShield? Be prepared for both the steep learning curve and the massive amount of documentation on how to create the installer.

What I really needed was some tool that could easily make an installer for me without many bells and whistles just so that management could use the tool and give feedback. In short, I was really looking for a minimum viable installer.

After digging around, I found Excelsior, a very easy to use tool for creating installer packages. It’s not the easiest thing to automate, but for creating one-time installers or creating them infrequently, this tool is fantastic.

Getting Started With Excelsior

After installation, go ahead and start Excelsior and click “New”.

In general, the flow for creating the installer is to first choose which files need to be included in the installer. In this application, it’s pretty easy to specify which files to copy:


On the next screen, you can specify the names of the company and product, the version, and (in my opinion, the most useful), shortcuts for your application.


On the third screen, you can add the End User License Agreement (EULA), a splash screen, and custom actions that can be ran after install (updating configuration files or launching other applications). In this screenshot, I added a EULA and an always run action to start the installed application.


After finishing up that screen, save the installation package files and let Excelsior create the installer. By saving the installation package files, Excelsior has a way to track if there’s a new version of the file in the directory you specified earlier. So auto-updating files is great, however, there’s not a way for it to determine if new files should be added or not.


  • Simple to get started with (stumbling on my own, I was able to get an installer up and running within an hour).
  • Has a decent amount of customization (shortcuts, EULA, custom actions).
  • Can export to NSIS so can incorporate installer creation into continuous integration.
  • Free for personal and commercial use, have another product, Excelsior Delivery that has a few more bells and whistles that costs about $100.


  • Does not support custom screens out of the box. For example, I needed a screen that would allow the end user to specify a SQL Server database instance. Excelsior cannot do this in the UI, but can be done by coding it in NSIS.
  • There’s not a whole of documentation on the product so it’s usually faster to stumble around in the application looking for a feature.
  • There’s no way for it to automatically add files to the list, however, it can auto-update already added files.


Leave a Reply

%d bloggers like this: