前言
今天大姚给分享分享一款基于 .NET 开源免费、跨平台应用程序自动升级组件:GeneralUpdate。
项目介绍
GeneralUpdate 是一个基于 .NET Standard 2.0 的跨平台应用程序自动升级组件(桌面客户端自动升级解决方案),项目遵循 Apache 2.0 协议开源。该组件不依赖任何 UI 框架,旨在减少更新产生的资源消耗。通过提供一键启动示例,帮助开发者快速理解如何将自动升级功能集成到自己的应用程序中。
应用场景
GeneralUpdate 适用于需要自动更新功能的各类应用程序,包括但不限于:
- 桌面应用程序:如 WPF、WinForms、Avalonia、MAUI(仅支持 Android 平台)等开发的桌面软件。
- 控制台应用程序:需要定期或按需更新的后台服务或工具。
- 跨平台应用:支持 Windows、Linux、macOS 等多平台的应用程序更新。
支持功能
基础更新策略
| 功能 | 说明 |
|---|
| 断点续传 | 更新失败后下次启动可继续下载未完成包,提升大文件更新稳定性。 |
| 逐版本更新 | 多版本差距时按发布日期顺序逐步升级,避免跳跃式更新导致兼容问题。 |
| 二进制差分更新 | 通过差值算法生成补丁文件,仅传输变更部分,节省带宽与时间。 |
| 增量更新功能 | 仅更新修改过的文件并删除废弃文件,实现最小化变更集。 |
| 强制更新 | 客户端启动即触发更新,确保用户始终使用最新合规版本。 |
分支与推送机制
| 功能 | 说明 |
|---|
| 多分支更新 | 支持产品多分支并行开发,各分支独立配置更新内容。 |
| 最新版本推送 | 基于 SignalR 实时推送当前最新版通知,实现主动更新提醒。 |
用户体验与控制
| 功能 | 说明 |
|---|
| 跳过更新 | 允许用户弹窗选择是否更新本次发布;服务端强制更新时此选项失效。 |
| 相互升级 | 主程序与升级程序可互相更新,形成闭环自洽的更新体系。 |
| 黑名单 | 更新过程中自动跳过指定文件或扩展名列表,防止误覆盖关键资源。 |
部署与运维增强
| 功能 | 说明 |
|---|
| OSS 极简更新 | 只需在服务器放置 version.json 配置文件,组件自动识别并下载对应版本。 |
| 回滚/备份 | 更新前本地备份,若启动失败或崩溃则自动恢复至上一稳定版本。 |
| 驱动更新 | 基于 GeneralUpdate.Drivelution 实现跨平台驱动自动更新(Win/Linux/macOS),含签名验证、权限管理等完整流程。 |
扩展与高级特性
| 功能 | 说明 |
|---|
| 扩展管理 | 类似 VS Code 插件系统,支持目录管理、远程查询、依赖解析、事件通知等。 |
| 自定义方法列表 | 注入自定义方法集合,在更新前执行预处理逻辑,异常时订阅通知。 |
| AOT 编译支持 | 支持 Ahead-of-Time 编译发布,适配高性能或受限环境需求。 |
| 身份认证 | HTTP 请求中传递 token 进行资源访问控制,保障更新源安全性。 |
支持框架
.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 | 支持 |
支持操作系统
| 操作系统名称 | 是否支持 |
|---|
| Windows | 支持 |
| Android (.NET MAUI) | 支持 |
| 麒麟V10(飞腾S2500) | 支持 |
| 麒麟V10(飞腾FT-2000) | 支持 |
| 麒麟V10(x64) | 支持 |
| Ubuntu 24.04.1 LTS | 支持 |
| 龙芯(Loongnix LoongArch 3A6000) | 支持 |
| 华为欧拉(EulerOS-鲲鹏Kunpeng) | 支持 |
| Apple Mac (M1) | 支持 |
| 统信UOS (x64) | 支持 |
项目效果演示

项目源码地址
更多项目实用功能和特性欢迎前往项目开源地址查看👀,别忘了给项目一个Star支持💖。
优秀项目和框架精选
该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没🤞)。