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