win备份还原工具开发日记·ARM64 构建的红线

举报
任正非 发表于 2026/10/02 22:57:09 2026/10/02
【摘要】 1. 不能做一个"通用 exe" :项目是两个独立产物——`x64` 和`ARM64` 各编各的,不可混用;当前只开发 ARM64,x64 只保留构建配置。2. macOS 的测试不能当 Windows 证据 :macOS 只负责格式化、离线测试和静态检查,交汇编译在 VM 里做。这和 implementation-notes 里"`cfg(windows)` 分支在 macOS 上根本不编...

1. 不能做一个"通用 exe" :项目是两个独立产物——`x64` 和`ARM64` 各编各的,不可混用;当前只开发 ARM64,x64 只保留构建配置。
2. macOS 的测试不能当 Windows 证据 :macOS 只负责格式化、离线测试和静态检查,交汇编译在 VM 里做。这和 implementation-notes 里"`cfg(windows)` 分支在 macOS 上根本不编译"是同一个坑的两面。
3. 源码同步路径换了 :旧的`C:\BackupRestoreBuild\src` 不再用,改走 Parallels 共享桌面到`C:\Users\x\Desktop\BackupRestore` 。
4. Cargo target 不能放共享目录 :共享目录的临时文件语义和 Rust 的临时归档操作冲突,必须用`-CargoTargetDir` 把输出放到 VM 本地磁盘(推荐浅层目录一次指定 target 和输出)。
5. 脚本不自动下载工具链 :缺少目标会直接停止,避免在用户网络环境里偷偷产生大流量。
6. 包内容要固定核对 :每个包 =`BackupRestore.exe` +`Recovery.exe` + WinRE 启动载荷 + MSVC runtime +`build-manifest.json` ,目录名带版本号。
7. 运行时不依赖 PowerShell 也体现在构建里 :`prepare` 的任务准备、卷枚举、WIM 读取、WinRE 注入、BCD 快照都由自己完成;`Recovery.exe` 是 WinRE 唯一执行入口,缺了不会回退批处理。
一句话:这篇的核心就是"构建环境和产物形态不许自由发挥",错了会出现"编译过了但跑的其实是旧架构/旧代码"这类假证据。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。