一款基于 .NET 开源、跨平台应用程序自动升级组件

前言

今天大姚给分享分享一款基于 .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推荐或自荐(让优秀的项目和框架不被埋没🤞)。

相关推荐
张人玉1 小时前
SMT 贴片机上位机项目
开发语言·c#
asdzx672 小时前
C#:从 URL 下载 PDF 文档到本地
开发语言·pdf·c#
南無忘码至尊2 小时前
Unity学习90天 - 第 5 天 - 阶段小项目
学习·unity·c#·游戏引擎
CompaqCV3 小时前
OpencvSharp 算子学习教案之 - Cv2.Multiply
学习·c#·opencvsharp算子·opencv教程
CompaqCV3 小时前
OpencvSharp 算子学习教案之 - Cv2.Subtract 重载2
学习·c#·opencvsharp算子·opencv教程
切糕师学AI3 小时前
深入解析SqlSugar:.NET领域的高性能多数据库ORM框架
数据库·.net·orm
回忆2012初秋3 小时前
C# 射线算法:判断GPS点是否在车辆工作区域内
linux·算法·c#
The Shio3 小时前
上位机对接设备协议踩坑指南
网络·单片机·嵌入式硬件·物联网·c#·.net
CompaqCV4 小时前
OpencvSharp 算子学习教案之 - Cv2.Add
学习·c#·opencvsharp算子
CompaqCV4 小时前
OpencvSharp 算子学习教案之 - Cv2.Subtract 重载3
学习·c#·opencvsharp算子·opencv教程