自动更新检测
NQBot 启动后会读取 runtime/appsettings.json 的 updateUrl,在后台检查新版本;也可以在“帮助 → 检查更新”手动检查。
1. 配置
{
"updateUrl": "https://example.com/nqbot/update.json"
}
- 为空:不自动检查;手动检查会提示未配置。
- 支持
http:///https://。 - 建议使用 HTTPS。
2. 通用 update.json 格式
{
"version": "1.0.1",
"url": "https://example.com/nqbot/NQBot-1.0.1.zip",
"notes": "1. 修复插件状态显示\n2. 优化更新检测"
}
version:最新版本号,支持1.0.1或v1.0.1。url:下载页/安装包地址,仅允许 http/https。notes:更新说明,支持换行。
3. GitHub / GitCode Releases API
也可以直接填 Releases API:
https://api.github.com/repos/<owner>/<repo>/releases/latest
解析字段:
tag_name→ 版本号html_url→ 下载/发布页body→ 更新说明
GitCode 的 Releases API 如返回同样的 tag_name / html_url / body 字段也可直接使用。
GitCode 仓库文件 API(推荐,无需发 Release)
https://api.gitcode.com/api/v5/repos/Muo_/NQBot/contents/update.json?ref=main
该接口返回 { "encoding": "base64", "content": "..." },NQBot 会自动解码后再解析 update.json。仓库文件更新后即可生效,不需要创建 Release。
4. 版本比较
- 当前版本取程序集版本(
NQBot.App.csproj的<Version>)。 - 远端版本必须严格大于当前版本才提示。
- 版本号使用
System.Version解析,建议使用主.次.修订三段。
5. 发布流程建议
- 修改
src/NQBot.App/NQBot.App.csproj的<Version>。 - 构建/发布便携包。
- 上传安装包到 Releases 或对象存储。
- 更新
update.json的version、url、notes。 - 用户下次启动即可收到提示。
6. 安全
- 只打开 http/https 下载地址,避免
file://或自定义协议。 - 更新源应使用 HTTPS,防止中间人篡改版本信息。
- 下载后建议校验文件哈希/签名(可在
update.json中扩展sha256字段,当前版本暂未强制校验)。