Free software for Windows installers: NSIS vs. WiX? [closed]
Asked Answered
C

8

77

I'm need to choose a software package for installing software. NSIS and WiX seem promising. Which one would you recommend over the other and why?

Feel free to offer something else if you think it's better than these two.

Consequence answered 19/1, 2009 at 19:47 Comment(0)
N
90

If you want to get an installer done today, with the minimum amount of overhead, use NSIS. Simple scripting language, good documentation, fast.

If you want to build MSI files, integrate with the Windows Installer transactional system, and have plenty of time to devote to learning the declarative model used by Windows Installer, then check out WiX.

Narcosynthesis answered 19/1, 2009 at 19:58 Comment(6)
not quite written neutraly (therefore -1), but comes to the point. It does not matter, if you need to learn either of the two, both will cost you time. Either has its good points, NSIS is independent, with wix you get the windows installer integration.Lineman
If you want to get it done before lunch grab InnoSetup + IStool instead - that way you don't need to use an assembly-like programming language that NSIS uses.Swam
I haven't tried WiX. But NSIS has been bulletproof for me. And it's so incredibly fast & lightweight. I wrote a little about my experiences with it here: swortham.blogspot.com/2008/02/…Shipentine
+1 to counteract BeowulfOF. An individuals answer isn't objective truth and it is easy, and common, to offer pure personal bias hidden in neutral-doctor-bedside-manner language.Meritorious
That's an awesome answer.Interloper
I am adding up to date content to this answer: There is Visual Studio extension for writing NSIS (and also Inno Setup) installers directly in IDE. Using the scripting language is even easier (with syntax highlighting, IntelliSense and more): marketplace.visualstudio.com/…Contusion
U
43

Also, maybe give Inno Setup a shot. Sure, you might find it to be a bit strange as it forces you to write custom code in Pascal, but then again, there's hardly anything any more that forces you to actually do custom code - Inno Setup is really, really powerful.

Inno Setup also generates EXE installers - if you want your application to be easily deployable in enterprise environments, you'll probably have to go the WiX route, though personally, I've had quite the share of MSI related problems as a user that I personally would prefer MSI die a slow and horrible death (well - actually, a quick death would be favorable at this point - but horrible it can very well be), so just go ahead and do the EXE file thing.

So.

  • NSIS: Requires you to learn a new language. Creates EXE-installers.
  • WiX: Declarative setup creation, although a bit low-level. It certainly requires some fundamental MSI knowledge which I find really hard to obtain through the general lack of easy tutorials.
  • Inno Setup: Allows you to create quite powerful EXE installers with an easy, largely .INI-File based syntax, but it forces you to learn Pascal if you need custom coding.

As a long-time Delphi coder, I'd always go Inno Setup, though that's probably very biased (I'm an Inno Setup fan since around 1996).

Undies answered 19/1, 2009 at 20:7 Comment(1)
I'm curious, what were the MSI related problems?Adlib
L
13

This is pretty much a duplicate of *What is the best choice for building Windows installers, so I suggest you check out the many, many answers over there (there's some discussion of the commercial alternatives there too).

The question you need to ask yourself is: Do I need to be compatible with corporate deployment scenarios for SMS/Active Directory deployment? If the answer is yes, then learn the MSI fundementals.

If you want to ship an application that's really just for fun or doesn't need to be supported on a corporate environment and you're not wanting to spend lots of time getting up to speed then learn NSIS.

Lindsay answered 19/1, 2009 at 21:28 Comment(2)
[What is the best choice for building Windows installers]: Page Not FoundAstraphobia
What's the issue with NSIS and Active Directory? Is it abour a rule not allowing e.xe vs allowing .msiby default?Ming
S
11

NSIS will give you an exe, WiX will give you a MSI.

I have used NSIS to package up a couple MSI installers into a single exe and do some additional checking I couldn't figure out how to do using the VS.NET Setup project.

INNO Setup is another installer you may want to look at. It is closer to NSIS than WiX but the installers it makes look more like standard installers than NSIS installers do.

I did not use WiX because I did not like the XML definition language used to build the installer and I couldn't figure out if it supported packaging up other dependent MSIs

Of the three I liked NSIS best as it had the best documentation.

Siddur answered 19/1, 2009 at 19:57 Comment(0)
D
6

I use NSIS at work (I brought it in and converted our old InstalShield stuff), and I do like it.

I can't speak for the other options, but NSIS can be tricky for more complicated installer flow and the scripting language is kind of raw for more detailed kinds of things (more like assembler than a high level language).

Dragonfly answered 19/1, 2009 at 20:4 Comment(0)
M
4

Personally I've only tried WiX. It has a slightly steep learning curve (unless you manage to find a nice graphical UI for it), but should pay off in the end because it uses the Windows Installer format (MSI) rather than a custom EXE as (I believe) NSIS does. The declarative approach of WiX/MSI is generally favoured nowadays, and is considered more reliable. However, if you just want a quick and easy solution, NSIS might be the option as it ought to have many samples and a good support base (though personally I would just use a Visual Studio setup package for something like that). This blog post seems to discuss the matter pretty well.

Mayolamayon answered 19/1, 2009 at 20:3 Comment(1)
+1 for the link to a good discussionBerns
D
1

I have used NSIS. I can't really comment on the others, however I think there are quite a few comments that help to make an objective decision (if you haven't already). The HMNSIS software is great for creating a simple installer for a simple application. It has a built in wizard and is good little IDE for NSIS.

I also agree that it is a fairly well documented, free software. However, like I said, due to the fact that I haven't needed anything else (because I like NSIS) I cannot compare.

Deviation answered 8/8, 2011 at 17:56 Comment(0)
R
-1

You should take a look at InstallJammer. Not only is it free, it's cross-platform and very easy to use. Most common actions don't require any scripting at all, but with a powerful scripting language underneath the hood, you can make an install do just about anything you want.

If all you want is a basic installer to install your application, you can have it built in a matter of minutes from the first time you start it up. If you want something more powerful, the capabilities and documentation are excellent.

Resume answered 29/1, 2009 at 21:12 Comment(1)
InstallJammer link is dead.Jerejereld

© 2022 - 2024 — McMap. All rights reserved.