67

I've used ClickOnce a lot over the years, but I have run up against a lot of its limitations. What alternatives are there for web deployment?

So far the only one I've been able to turn up is ClickThrough, which is part of WiX now on the back burner. Are there others that have had success?

Glorfindel
  • 21,988
  • 13
  • 81
  • 109
ScottB
  • 1,363
  • 2
  • 14
  • 24

4 Answers4

31

Squirrel: It's like ClickOnce, but it works.

Squirrel is both a set of tools and a library, to completely manage both installation and updating your desktop Windows application, written in either C# or any other language (that is, Squirrel can manage native C++ applications).

Squirrel uses NuGet packages to create installation and update packages, which means that you probably already know most of what you need to create an installer.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
kimsagro
  • 15,513
  • 17
  • 54
  • 69
  • 6
    Squirrel for windows does not support Windows XP or .net 4.0, but if can live with that then its a great choice. – Peter Sep 21 '15 at 16:14
  • Squirrel.Windows is a great alternative to ClickOnce. I've completed a migration from ClickOnce to Squirrel and it has gone smoothly at every step. I've put a lot of time into making sure I understand all the facets that could affect my migration and the pay off so far seems worth the investment. – SomeInternetGuy Nov 15 '16 at 18:22
  • Hm it doesn't have any dialogs or GUI to guide the user through the update process? Just silently copies files around in the background? – user3700562 Sep 06 '18 at 18:24
21

After using WiX, NSIS and InstallAware, I have to humbly admit that they were all overkill for what I really need as a software developer. There are no projects that I've done so far which couldn't be deployed using the Visual Studio deployment project.

Is it limited? Yes.

It is also very simple to learn and use. Moreover, you can actually do really neat things like automatically create patches (.MSP files) by using techniques as described here

I fully understand that you can't do everything inside of a Visual Studio setup project, but it's rather surprising what you can accomplish. It's free, it's easy and, frankly, for general use is a better option than spending endless hours learning WiX's mind-boggling XML (impressive as it is), or InstallAware's verbose scripts.

With VS Setup, it's drag'n'drop & build'n'deploy. Every other solution I've tried had set backs... they can't automatically detect your project output... or need special filters so as not to include unwanted outputs from the build.

My suggestion is thus: If you simply wish to get your project deployed, then learn:

  1. How to build a custom installer class, and
  2. How to author your own pre-requisite packages

These are both reasonably easy skills to master, and satisfy the needs of most developers.

Ashwin Nanjappa
  • 76,204
  • 83
  • 211
  • 292
Mark
  • 9,320
  • 6
  • 57
  • 70
  • 9
    Visual Studio Setup projects cannot be build with MsBuild so if you are automating your release process they are a no go. – Burt May 27 '10 at 09:48
  • 26
    .vdproj (VS Setup Projects) have been dropped from VS2012. – spender Sep 18 '12 at 11:48
  • 1
    .vdproj is now supported in VS 2013 https://visualstudiogallery.msdn.microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d – ErikEJ Dec 04 '14 at 12:26
  • 2
    Visual Studio setup projects are ***not*** available in some [Express](https://en.wikipedia.org/wiki/Microsoft_Visual_Studio_Express) versions of Visual Studio (all Express versions?). – Peter Mortensen Mar 25 '15 at 18:35
  • @ErikEJ and its still poor support – BozoJoe Aug 09 '16 at 07:18
  • Yeah, I spent several years becoming an expert at VS Setup only to have it discontinued. Though it's overkill, I use VIX now because it seems to have the closest set of features. – Quark Soup Apr 28 '17 at 15:04
  • 3
    "Microsoft Visual Studio Installer Projects" can be added to Visual Studio via "Manage Extensions" – A.J.Bauer Oct 16 '20 at 04:53
5

What limitations are you experiencing with ClickOnce? When I don't use ClickOnce, I use NSIS (though you could use most other installer languages/systems) to make a runnable, self-installing application.

That is, when you run the download it is running the application, and there aren't any setup questions. There is a menu option, or a frequent-use detector that allows for permanent installation.

The two hard issues are:

  1. Settings files
  2. Local registry settings

For settings files, I use a remote web service to hold states, etc.

If you need local registry settings (file associations, etc.) then you need to do a proper install, but this can be done silently when the user is working with the application for the first time.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
TFD
  • 23,890
  • 2
  • 34
  • 51
  • nsis installs are not vaild for "design for" logo. you have to use windows installer and i think it isnt a good idea to use legacy installers. – coding Bott Mar 08 '09 at 13:36
  • 2
    NSIS is hardly legacy, it stil solves many issues not easily resolved in WIX etc Have you ever had a customer ask for "designed for" compliance? Deliver a sound solution that the customer want's, not what the Microsoft marketing dept want! – TFD Mar 08 '09 at 20:42
  • @TFD NSIS is no good for corporate customers, if it's not MSI then it's not getting rolled out to 1000+ machines. – saschabeaumont Mar 10 '09 at 02:57
  • @sascha We are talking about processes that are NOT deployed via corporate rollout mechanisms. That's what ClickOnce is for – TFD Mar 10 '09 at 03:37
  • You can use WIX if you want, but NSIS is so much easier, and the result is the same – TFD Mar 10 '09 at 03:37
  • 1
    Clickonce just breaks every once in a while for one computer in ten, or one update in ten. It'll always find a way to break for the least technical person who is in most need of you app at that moment in time. So that's the biggest consistency for me - lack of reliability. – Simon_Weaver Aug 30 '18 at 23:33
3

Check this out http://simpldeploy.com It‘s similar to squirrel but integrated into VS like ClickOnce. And it has Dialogs (optional) like ClickOnce.

Daniel
  • 486
  • 4
  • 19
  • I liked this option, it's a lot more simple than Squirrel. But unfortunately, it isn't a complete replacement for ClickOnce. It only works with URLs and it currently doesn't support file servers/UNC paths for deployment. The author said that they have that in their backlog, but unfortunately it doesn't seem like it's going to be implemented any time soon. :( – Stevie White May 18 '19 at 01:26
  • Yes that‘s an issue indeed. What we did for environments where no public domain was avalaible we just set up an iis and published it to a servers url (http://myinternalserver/apps/myapp) – Daniel May 20 '19 at 05:29
  • i had a different issue when trying out this one. first was an error caused by a missing `Microsoft.VisualStudio.Shell.15.0.dll` which i don't know why as i'm using VS Pro 2017 to begin with. so i downloaded it via NuGet, installed it to my GAC using gacutil, and now i get this log entry: https://pastebin.com/RNLhx2Zi – Nii Sep 06 '19 at 03:10
  • There was an issue with VS 2017 in Version 2.0.0. This has been fixed now in current Version 2.0.1. Thank you – Daniel Sep 24 '19 at 07:56