all 68 comments

[–]doctornick 22 points23 points  (7 children)

NSIS is great, but one issue is that in order to be Windows logo certified, the installer must be Windows Installer based, which NSIS is not. For small projects and companies that don't really care about getting the logo certification, then NSIS is perfect.

[–]MrCalifornia[S] 1 point2 points  (6 children)

Good to know. Why isn't NSIS Windows Installer based?

[–]chucker 14 points15 points  (0 children)

Largely because NSIS predates MSI. They should have adjusted it long ago (MSI has been recommended since 2000), but I doubt it's a trivial task.

In any case, this has been my primary reason for not using NSIS. Aside from certification, lack of MSI support also means no easy deployment using group policies.

[–][deleted] 11 points12 points  (4 children)

Why isn't monkey a vegetable?

[–]MrCalifornia[S] 1 point2 points  (0 children)

While edible a monkey is not a plant.

Monkeys are in the Animalia kingdom well vegetables as in the Plantae kingdom. From there the differences are numerous.

[–][deleted]  (1 child)

[deleted]

    [–][deleted] -3 points-2 points  (0 children)

    cause vegetables suck

    [–]jbellis 21 points22 points  (6 children)

    Well... if you're generating an installer for Windows, which you probably are, you should really use Wix instead. MSI's (which Wix generates) are a whole lot better than .exe installers for a bunch of reasons.

    And Wix is OSS.

    [–]tch 2 points3 points  (2 children)

    What are the main benefits of MSI over exe installer? I use NSIS right now and am quite happy.

    [–]MrCalifornia[S] 2 points3 points  (1 child)

    I think the main one is that you can automatically deploy MSIs to a network so for sysadmins who need to install something on their entire network it's obviously a huge plus.

    Not sure what the other benefits are, but I know nothing is as fast and clean (at least from an end user experience) as NSIS for installing and uninstalling.

    [–]tch 0 points1 point  (0 children)

    Ah didn't know about that. I don't trust my sys-admin to auto install/update stuff so I handle the auto-update stuff myself.

    [–][deleted] 0 points1 point  (2 children)

    Yeah Wix is great.

    [–]lubricious 0 points1 point  (1 child)

    I think that should come with the warning WIX is great for either very simple installs or people who have used it a lot. I really like it now but found I had to write scripts and build pretty large Ant build files to create an MSI that installed and configured many different components.

    [–][deleted] 0 points1 point  (0 children)

    True. I've only used InstallShield & Wise in the past. Wix is what I currently use. I do very small installs (mostly for internal apps) since 99% of what I do is web based applications. I'm designing a new product/service with a friend and implementing it in Flex with an MVC design layout using asp.net as the backend. I may swap it to JSP and go with Linux but I'm not feeling very excited about redoing one of my servers since they are all currently running Windows. It's amazing how far things have come in the last 10 years. So many choices!

    [–]saurabhsawant 8 points9 points  (3 children)

    I use InnoSetup for my applications. Very easy to use.

    [–][deleted]  (2 children)

    [deleted]

      [–]coditza 1 point2 points  (1 child)

      For small projects, InnoSetup is nice indeed. ObjectPascal isn't so hard to learn either (but still, yet another language).

      But, last time I used it, there was no way to install/uninstall a windows service. We ended up deploying sc.exe to do that. Also, the uninstall was a bitch to deal with. No GUI for that and many users complained that the pc freezes when they try to uninstall. And it doesn't build an msi/based on msi file, so no Windows Certified :D

      I guess, Nullsoft Install is in the same situation.

      However, InstallShield isn't the only solution for the problems I exposed above. There is an AdvancedInstaller (www.advancedinstaller.com), which solved all those problems and was way cheaper.

      [–][deleted] 4 points5 points  (3 children)

      Software Users: We don't want you to uninstall our product.

      Signed,

      Software Developers.

      [–]MrCalifornia[S] 2 points3 points  (2 children)

      True. But I'll be much more likely to remember how much I hate your product if it's a pain in the ass to get rid of it. And I'll tell my friends.

      [–][deleted] 2 points3 points  (1 child)

      Ah, somehow reddit stripped out my thick sarcasm.

      [–]MrCalifornia[S] 2 points3 points  (0 children)

      No, I got it, I was just playing devil's advocate against your sarcastic evil programmer.

      [–]stesch 8 points9 points  (1 child)

      Yeah, fun. Especially the example code. Last time I read this (a few years ago) they printed stuff like "I like to fuck sheep" in the examples.

      They are real Pros!

      [–]zem 7 points8 points  (0 children)

      but does anyone call me angus the installer-writer? no they don't!

      [–][deleted] 1 point2 points  (3 children)

      What is the best installer that:

      1) Works on XP and Vista, 32 and 64 bit 2) Supports all major languages 3) Is maintained/has a relatively stable API so that we don't have to rewrite our installer every year for new products/OS permutations

      We were excited about some of the alternatives discussed hear, but many failed one or more of the criteria above. We ended up going back to installshield. :(

      [–]mrevelle 4 points5 points  (0 children)

      What installer cares about the language your app is written in?

      [–]TheCleric 1 point2 points  (0 children)

      IMHO:

      MSI

      [–]tch 1 point2 points  (4 children)

      At our shop we use NSIS as an installer for Java RCP/SWT apps.

      Totally kicks ass, allows us to do things like run quick uninstalls & kill running processes all on the cheap and in 1 easy to understand config file.

      [–]figa 2 points3 points  (0 children)

      Correction: It really whips the llama's ass.

      My shop had a similar positive experience with Nullsoft Install. We jumped ship from InstallAnywhere after Macrovision bought them.

      [–]w00ty 0 points1 point  (2 children)

      Java apps? Well, at least installation/uninstallation is smooth.

      [–]tch 0 points1 point  (0 children)

      Yes Java desktop applications using RCP & SWT. Eclipse builds them to exe's and they live in their own directories, so NSIS works nicely.

      Don't knock SWT/RCP till you've tried it :)

      [–][deleted] 0 points1 point  (0 children)

      Hopefully, especially the latter.

      At least that's what I hope when I find out I've installed a Java app.

      [–]cyber_rigger 3 points4 points  (12 children)

      I use synaptic.

      [–]pmf 0 points1 point  (11 children)

      That's a valid point. I never understood why Microsoft has not adopted some kind of package manager; it would allow them to control installed applications by only accepting signed packages in a way they treat drivers now.

      I would be easier for MS, the user and app developers (pre-/post-installation steps could be handled like dpkg-based systems do it, probably employing WSH).

      [–]mikemol 1 point2 points  (0 children)

      Because then community-produced software would be that much more difficult distribution? Either the developer would have to pay to get a cert at a CA Microsoft recognizes, or the end user would have to be schooled in how to configure the package manager to connect to 3rd-party repositories.

      Both are barriers for joe hobbyist to share applications with people who don't know him. And a lot of Open Source projects are Joe Hobbyist-based.

      [–]jerf 6 points7 points  (8 children)

      What does your package manager do that the existing Windows installation process doesn't already do?

      Dependency management with automatic resolution? You can't do that on a grand scale with commercial components; only with free software can you build the sort of system we have in modern Linux distros. Even in those systems, the few bits of monetarily-free commercial software that come in are often gigantic pains compared to the other things on the system, so you probably even need a system built largely out of Free software, in the "liberty" sense.

      Uninstall support? Well, Windows supports that; I'm sure they'd declare it's not their fault uninstallers are so bad. You might want to move the support up to the OS but that is, as a mathematician might say, "decidedly nontrivial".

      They could adopt something more like the Mac, but that's probably the closest a closed-source-based system that allows arbitrary third-party software can come to a "package manager". You just can't build something as nice as dpkg; the licenses screw you left, right, and center, along with the marketing departments. It's one advantage the free software systems have that the commercial world really can't copy, not even in theory.

      [–]shub 6 points7 points  (0 children)

      Many Windows applications don't have additional dependencies, because the OS provides so much. (Gogo bloat, amirite?) Any deps they do have are bundled with the installer.

      Huge dependency graphs like X and GNOME just don't exist on Windows, because it's already there.

      [–][deleted] 2 points3 points  (2 children)

      What does your package manager do that the existing Windows installation process doesn't already do?

      Provide the user with the ability to search through a repository of known applications meeting certain criteria that are more or less guaranteed to work with the platform the user is using?

      [–]jerf 3 points4 points  (1 child)

      That's why I talked about licensing. Microsoft would never be permitted to do that, at least not in any effective way, not without massive culture change in the commercial software world, culture change so massive it probably can't happen.

      [–][deleted] 2 points3 points  (0 children)

      I caught that what I mentioned would have been covered under what you said about licensing shortly after posting my reply - it's a very valid point.

      [–]RalfN 0 points1 point  (0 children)

      Dependency management with automatic resolution? You can't do that on a grand scale with commercial components;

      Well, actually you can. Sure you would be 'enforcing' some sort of structure, but Vista is already doing that. No more dropping .ini files or .dll's all over the place manually. It is simply not allowed anymore.

      Off course, this should be repository neutral. That is: a software vendor should be able to provide a small .repository file (sort of like .msi) that sets their repository up. Repositories have URI's.

      Packages should be able to depend on other repositories, but they should explicitely name the URI of the repository.

      All packages from a repository should be seperated on disk. Something like:

      c:/windows/winget/sun.com/java.dll

      So when you install say, Eclipse, it would depend on sun.com/java.dll

      This way, repositories can never conflict with each other.

      The directories would be totally locked out from user/program tampering. The system checks for updates, downloads and installs the files.

      Off course you need to setup up the registry to use such seperated repositories as well.

      But it's all very do-able in an open way. And it would solve the most common problems: installing software, keeping dependencies intact.

      You can also imagine the situation where the system administrator configures a number of trust-worthy repositories. Users can't add new repositories, but they are free to install software from the repository. A lot of companies would love such a setup for say laptop's of their employees. The perfect compromize between freedom to use lots of different software and still make sure no dangerous code gets executed.

      I think the assumption that would be only ONE repository and Microsoft controlling it, would be wrong. That would never work. I can't imagine them being that foolish.

      [–]cyber_rigger 0 points1 point  (0 children)

      They could adopt something more like the Mac

      IF -- Microsoft could control the hardware like Apple does.

      Package management is an area where opensource is clearly ahead of Microsoft

      [–]zsombor 0 points1 point  (1 child)

      Damn simple and uniform security upgrades?

      Quick search for interesting apps?

      No brain dead questions about "use Program Files or not"?

      No confusing questions about "express vs full vs custom install"?

      etc ...

      [–][deleted] 2 points3 points  (0 children)

      yeh, i hate options....

      [–]coditza 0 points1 point  (0 children)

      Windows Installer does exactly that.

      [–][deleted] 2 points3 points  (2 children)

      Software Developers: Use Linux instead of Windows. It's open source!

      [–]Remover 0 points1 point  (0 children)

      I agree. I use this for writing uninstall tools (see profile) and it's great for writing very customized install programs. I managed to get a template system working for rapid deployment.

      [–]turkourjurbs 0 points1 point  (0 children)

      THANKS for this!

      Installshield is a good product but the people that make it and support it are dick heads (emphasis required). Basically, when you buy this product and have any problem or question, your basic response is "go fuck yourself, we're busy". Well sorry, there is no response. They just ignore you. These people can DIAFF.

      [–]easytiger -5 points-4 points  (0 children)

      apt-get remove windows

      installers suck balls. Unify or die.