What alternatives are there to ClickOnce?

2019-01-06 13:10发布

问题:

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?

回答1:

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.



回答2:

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.



回答3:

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.



回答4:

ClickOnce constantly fails in updating the application and it requires reinstallation, it's buggy and unstable. Those are my experiences, constant problems with click once. Clients constantly call me to fix it, all I can do is uninstall and reinstall it. I seriously thought about making my own simple solition instead of click once.