Skip to content

feat(desktop): 迁移 PCL 跨平台桌面功能 - #6

Open
Linming-XHL wants to merge 6 commits into
mainfrom
feat/cross-platform-avalonia
Open

Linming-XHL wants to merge 6 commits into
mainfrom
feat/cross-platform-avalonia

Conversation

@Linming-XHL

@Linming-XHL Linming-XHL commented Nov 15, 2026 •

Copy link
Copy Markdown

变更说明

引入 Windows / Linux / macOS 的 Avalonia 桌面入口,共享核心使用 net10.0,同时保留原 WPF 入口与 Windows 发布。

此次迁移包含:

  • 原版安装修复,Fabric、Legacy Fabric、Forge、NeoForge、Cleanroom、LiteLoader、LabyMod 与 OptiFine 的加载器入口。
  • Modrinth / CurseForge 资源搜索、版本与必需依赖、收藏、本地 Mod / 资源包 / 光影 / 投影管理及更新。
  • mrpack、CurseForge、HMCL、MCBBS、MultiMC 与普通压缩包的事务式导入;实例导出排除已知凭据和密钥。
  • 实例隔离、每实例 Java/内存覆盖、JVM/游戏参数、环境变量、服务器快速加入、版本副本和备份移除;启动后窗口行为与异常退出分析。
  • 存档解析与编辑、修改前备份、导入导出、数据包管理;servers.dat 兼容读写、状态探测;截图预览。
  • 多账户及旧存储迁移,微软 / Authlib / Yggdrasil Connect,皮肤与披风。
  • Java 检测与校验安装,Scaffolding / 原生 EasyTier 联机、成员列表、NAT/IPv6 检测,原崩溃规则,新闻、自定义声明式主页(Grid/WrapPanel)、可逆语言切换、外观、网络与媒体设置。
  • 每用户单实例唤醒;日志筛选、复制和导出;资源替换前校验、备份与失败恢复。
  • 六 RID 的自包含发布包;下载校验、准备更新、退出后替换/备份/重启,并接入 release 工作流。

功能入口对照与兼容边界:

验证

  • 本地 Linux:41 项跨平台测试中 40 项通过,1 项 IPC 测试因当前容器禁止 Unix socket 明确跳过,由三系统 CI 补充验证。
  • 测试使用内存 HTTP fixtures 和临时目录,包含依赖循环、哈希校验、安装失败清理、整合包格式、NBT 保留、隔离启动参数、Java 包校验、安全解压与 Unix 内部链接兼容、多账户与更新助手备份/重启。
  • Avalonia/Skia 无界面加载全部主导航与已接入子页面。
  • 原 WPF 应用本地 CI 编译通过。
  • 最新提交 982ce989 的三系统 CI 全部通过:Linux/macOS 各 41 项通过;Windows 37 项通过、4 项 Unix 专属测试跳过。单实例 IPC 在三系统均通过。
  • 原 Windows 测试 140 项全部通过,WPF x64/ARM64 构建通过;六 RID 自包含发布包均已生成。
  • 原 WPF 本地再次编译通过(0 错误)。

实测边界

真实账号、异地大厅、所有历史加载器和各平台音视频设备不能由 fixtures 或交叉发布替代。媒体需要系统 LibVLC;自定义主页使用安全声明式子集,无法执行 WPF 代码/标记扩展;新增界面的部分文本仍有回退。未完成真机验收的部分在文档中明确标注,不能据此声称已验证全部原版功能。

按任务要求面向 main,非草稿。

@Linming-XHL Linming-XHL changed the title feat(desktop): 引入 Avalonia 跨平台启动器初版 feat(desktop): 迁移 PCL 跨平台桌面功能 Nov 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant