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?
这些年来我经常使用ClickOnce,但是我遇到了它的许多局限性。对于web部署有哪些替代方案?
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?
到目前为止,我唯一能找到的是ClickThrough,它是WiX的一部分,现在已经被搁置了。还有其他人取得了成功吗?
3 个解决方案
#1
11
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.
在使用了WiX、NSIS和InstallAware之后,我不得不谦卑地承认,对于我作为一个软件开发人员真正需要的东西来说,它们都是多余的。到目前为止,我还没有做过不能使用Visual Studio部署项目进行部署的项目。
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.
我完全理解,在Visual Studio安装项目中,您不可能完成所有的工作,但是您能够完成的工作是相当令人惊讶的。它是免费的,也很简单,坦率地说,对于一般用途来说,它比花费大量的时间学习WiX令人难以置信的XML(虽然令人印象深刻)或InstallAware公司冗长的脚本要好。
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.
使用VS安装,它是拖拽和构建部署。我尝试过的所有其他解决方法都失败了……他们不能自动检测你的项目输出……或者需要特殊的过滤器,以便不包含来自构建的不需要的输出。
My suggestion is thus: If you simply wish to get your project deployed, then learn:
我的建议是:如果你只是想让你的项目被部署,那就学习:
- How to build a custom installer class, and
- 如何构建自定义安装程序类
- How to author your own pre-requisite packages
- 如何编写您自己所需的软件包
These are both reasonably easy skills to master, and satisfy the needs of most developers.
这些都是相当容易掌握的技能,并且满足了大多数开发人员的需求。
#2
21
Squirrel: It's like ClickOnce, but it works.
松鼠:它就像ClickOnce,但它能工作。
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既是一组工具,也是一个库,它可以完全管理安装和更新桌面Windows应用程序,用c#或其他语言编写(也就是说,Squirrel可以管理本机c++应用程序)。
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.
Squirrel使用NuGet包来创建安装和更新包,这意味着您可能已经知道创建安装程序所需的大部分内容。
#3
4
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.
点击一次有什么限制?当我不使用ClickOnce时,我使用NSIS(尽管您可以使用大多数其他安装程序语言/系统)来创建一个可运行的自安装应用程序。
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:
这两个难题是:
- Settings files
- 设置文件
- Local registry settings
- 本地注册表设置
For settings files, I use a remote web service to hold states, etc.
对于设置文件,我使用远程web服务来保存状态等等。
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.
如果需要本地注册表设置(文件关联等),则需要进行适当的安装,但当用户第一次使用应用程序时,可以静默地进行安装。
#1
11
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.
在使用了WiX、NSIS和InstallAware之后,我不得不谦卑地承认,对于我作为一个软件开发人员真正需要的东西来说,它们都是多余的。到目前为止,我还没有做过不能使用Visual Studio部署项目进行部署的项目。
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.
我完全理解,在Visual Studio安装项目中,您不可能完成所有的工作,但是您能够完成的工作是相当令人惊讶的。它是免费的,也很简单,坦率地说,对于一般用途来说,它比花费大量的时间学习WiX令人难以置信的XML(虽然令人印象深刻)或InstallAware公司冗长的脚本要好。
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.
使用VS安装,它是拖拽和构建部署。我尝试过的所有其他解决方法都失败了……他们不能自动检测你的项目输出……或者需要特殊的过滤器,以便不包含来自构建的不需要的输出。
My suggestion is thus: If you simply wish to get your project deployed, then learn:
我的建议是:如果你只是想让你的项目被部署,那就学习:
- How to build a custom installer class, and
- 如何构建自定义安装程序类
- How to author your own pre-requisite packages
- 如何编写您自己所需的软件包
These are both reasonably easy skills to master, and satisfy the needs of most developers.
这些都是相当容易掌握的技能,并且满足了大多数开发人员的需求。
#2
21
Squirrel: It's like ClickOnce, but it works.
松鼠:它就像ClickOnce,但它能工作。
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既是一组工具,也是一个库,它可以完全管理安装和更新桌面Windows应用程序,用c#或其他语言编写(也就是说,Squirrel可以管理本机c++应用程序)。
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.
Squirrel使用NuGet包来创建安装和更新包,这意味着您可能已经知道创建安装程序所需的大部分内容。
#3
4
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.
点击一次有什么限制?当我不使用ClickOnce时,我使用NSIS(尽管您可以使用大多数其他安装程序语言/系统)来创建一个可运行的自安装应用程序。
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:
这两个难题是:
- Settings files
- 设置文件
- Local registry settings
- 本地注册表设置
For settings files, I use a remote web service to hold states, etc.
对于设置文件,我使用远程web服务来保存状态等等。
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.
如果需要本地注册表设置(文件关联等),则需要进行适当的安装,但当用户第一次使用应用程序时,可以静默地进行安装。