前言
在软件快速迭代的今天,构建高效的自动更新机制已成为 .NET 桌面应用不可或缺的核心能力。它不仅确保用户能即时获取安全补丁、性能优化及最新功能,更能显著降低版本碎片化带来的技术支持成本,从而大幅提升用户体验与维护效率。今天大姚给大家5 种 .NET 桌面应用程序自动更新解决方案,希望可以帮助到有需要的小伙伴。
- 👪DotNetGuide技术社区: mp.weixin.qq.com/s/CbPvhmfK4...
ClickOnce
ClickOnce 是一种部署技术,可用于创建可安装和运行且用户交互最少的基于 Windows 的自更新应用程序。 如果已使用 Visual Basic 和 Visual C# 开发项目,Visual Studio 将完全支持发布和更新使用 ClickOnce 技术部署的应用程序(支持 .NET 和 .NET Framework 桌面应用程序)。
- ClickOnce微软官方使用教程: learn.microsoft.com/zh-cn/visua...


ClickOnce 部署克服了部署中的三个主要问题:

AutoUpdater.NET
AutoUpdater.NET 是一个 .NET 开源类库,允许.NET 开发者轻松为其传统桌面应用程序项目添加自动更新功能(该库仅适用于 WinForms 或 WPF 应用程序项目)。
- GitHub开源地址: github.com/ravibpatel/...


支持的.NET 版本
- .NET Framework 4.6.2 或更高版本。
- .NET Core 3.1、.NET 5.0 或更高版本。
Squirrel.Windows
Squirrel.Windows 是一个开源项目,旨在提供一套工具和库来全面管理 Windows 桌面应用程序的安装和更新。该项目适用于使用 C# 或其他语言(如C++)编写的应用程序。Squirrel 利用 NuGet包来创建安装和更新包,使得开发者能够轻松地创建安装程序并发布更新。
- GitHub开源地址: github.com/Squirrel/Sq...

GeneralUpdate
GeneralUpdate 是一个基于 .NET Standard 2.0 的跨平台应用程序自动升级组件(桌面客户端自动升级解决方案),项目遵循 Apache 2.0 协议开源。该组件不依赖任何 UI 框架,旨在减少更新产生的资源消耗。通过提供一键启动示例,帮助开发者快速理解如何将自动升级功能集成到自己的应用程序中。
- GitHub开源地址: github.com/GeneralLibr...

.NET 框架支持情况
| .NET框架名称 | 是否支持 |
|---|---|
| .NET Core 2.0 | 支持 |
| .NET 5 ... to last version | 支持 |
| .NET Framework 4.6.1 | 支持 |
UI 框架支持情况
| UI框架名称 | 是否支持 |
|---|---|
| WPF | 支持 |
| UWP | 商店模式下不可更新 |
| MAUI | 目前仅支持Android平台 |
| Avalonia | 支持 |
| WinUI | 支持 |
| Console | 支持 |
| WinForms | 支持 |
CheckUpdate.Net
CheckUpdate.Net 是一个基于 WinForm 开发的检查桌面应用程序更新的开源项目,可用于 WinForm、WPF,主要功能包括更新文件、更新程序自身、下载安装包等。主要利用 WebClient 下载服务器网站目录下的文件,安全性暂没有考虑,比较适用于小型项目。
- Gitee开源地址: gitee.com/xcong/Check...

优秀项目和框架精选
本文所有项目都已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。假如你有更好的推荐,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没🤞)。
- GitHub开源地址: github.com/YSGStudyHar...
- Gitee开源地址: gitee.com/ysgdaydayup...