Skip to content

fix(mfw): 差量包换用另一处原生库目录时改要全量包,预检实际加载一次 MaaFramework - #1986

Merged
qiyinxi merged 2 commits into
AUTO-MAS-Project:devfrom
qiyinxi:fix/mfw-delta-native-runtime-20261114
Nov 14, 2026
Merged

qiyinxi merged 2 commits into
AUTO-MAS-Project:devfrom
qiyinxi:fix/mfw-delta-native-runtime-20261114

Conversation

@qiyinxi

@qiyinxi qiyinxi commented Nov 14, 2026

Copy link
Copy Markdown
Member

摘要

  • 用户报障:MAA_bbb 发行包同时带 maafw/(5.14.3)和 runtimes/win-x64/ 两份原生库,导入时只留了 maafw/。v1.13.20 只升级了 runtimes/win-x64/(5.16.0),Mirror 酱差量包里只有改过的十几个 DLL。runner 按版本取高换到 runtimes/win-x64,opencv、onnxruntime 等没改过的依赖都不在,每次运行都报 Could not find module ...\runtimes\win-x64\MaaFramework.dll (or one of its dependencies)。
  • 差量包套用完后,如果 runner 要用的原生库目录换到了旧版本里没有的地方,就抛 DeltaNativeRelocationError(原因链上是 UpdateApplyError),在登记前由 feat(update): 支持 MAA、MaaEnd 与 MFW 家族选择全量或增量更新 #1949 的回退改要全量包。
  • 预检在独立子进程里按 runner 的方式加载一次新版本的 MaaFramework.dll。确定加载不了就放弃这次更新、继续用当前版本;检查本身出问题(起不来、超时、非 Windows)一律放行。

测试与验证

  • 自动化测试:.venv\Scripts\python.exe -m pytest tests -q:2087 passed、1 skipped(跑完后只给错误单独定义了类型、去掉报错末尾的句号,之后 MaaFW 相关测试重跑通过)。改动文件 ruff format / ruff check 通过。
  • 测试提交:没有随 PR 提交测试。本地回归用例按问题包实际布局造了一个只有 maafw/ 的当前版本和只带 runtimes/win-x64 改动文件的差量包:去掉修复时只下差量包、新版本缺依赖(红),修复后先下差量、再下全量,新版本原生库目录完整(绿)。预检的加载检查另有一条 Windows 专属用例。
  • 环境与提交:15fffce99,Windows 11,Python 3.12(项目锁定环境)。
  • 未覆盖范围:没有在真实 MAS 上走一遍 MAA_bbb v1.13.18 → v1.13.20 的 Mirror 酱差量更新。
  • 作者本机真实流程:预检加载检查用 MAA_bbb 自带的真实 MaaFramework 5.14.3 原生库试过:完整目录放行;只留 MaaFramework.dll + MaaToolkit.dll 时被拒,报错与用户日志一致。

MAA_bbb 发行包同时带 maafw/ 与 runtimes/win-x64/ 两份原生库,导入时只留了 maafw/。
v1.13.20 只升级了 runtimes/win-x64/(5.14.3 -> 5.16.0),Mirror 酱差量包只带改过的
十几个 DLL;按版本取高 runner 换到 runtimes/win-x64,没改过的依赖(opencv、onnxruntime
等)都不在,MaaFramework.dll 每次运行都加载失败。预检只查项目 Python 的 agent,没拦住。

- 差量包套完后 runner 要用的原生库目录换了地方,抛 DeltaNativeRelocationError
  (原因链上是 UpdateApplyError),登记前回退全量包。
- 预检在独立子进程里按 runner 的方式加载一次新版本的 MaaFramework.dll,
  确定加载不了就放弃这次更新、继续用当前版本;检查本身出问题一律放行。
@github-actions github-actions Bot added 专项: MaaFW 类型: 修复 按更新日志碎片自动设置 labels Nov 14, 2026
@qiyinxi
qiyinxi merged commit 7af5238 into AUTO-MAS-Project:dev Nov 14, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

专项: MaaFW 类型: 修复 按更新日志碎片自动设置

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant