hi-client/自动打包说明.md
shanshanzhong f526122f33
Some checks failed
Build Windows / 编译 libcore (Windows) (20.15.1) (push) Successful in 19m34s
Build Windows / build (push) Failing after 7h11m21s
docs: 添加自动打包说明并简化工作流脚本
添加详细的自动打包说明文档,介绍工作流功能和打包流程
简化 docker.yml 中的脚本内容,移除冗余代码并优化错误处理
2025-11-09 22:06:42 -08:00

3.6 KiB
Raw Permalink Blame History

工作流自动打包单文件 EXE 说明

🎯 功能概述

现在工作流会自动完成以下步骤:

  1. 构建 Windows 应用Debug 和 Release
  2. 自动下载打包工具
  3. 创建单文件 EXE
  4. 上传打包结果

🚀 工作流程

步骤 1: Enigma Virtual Box 打包(首选方案)

  • 工具: 自动下载 Enigma Virtual Box
  • 输出: hostexecutor_single.exe
  • 特点: 真正的单文件,高压缩率

步骤 2: 7-Zip 自解压方案(备选方案)

  • 工具: 使用系统自带的 7-Zip
  • 输出: hostexecutor_package.exe
  • 特点: 自解压安装包,兼容性更好

步骤 3: 产物上传

  • 单文件 EXE: windows-single-exe 工件
  • 原始文件: windows-release-build 工件

📦 打包产物

成功时你会得到:

工件列表:
├── windows-debug-build          # Debug 版本(多文件)
├── windows-release-build        # Release 版本(多文件)
└── windows-single-exe          # 单文件 EXE自动打包

文件结构:

单文件 EXE:
└── hostexecutor_single.exe    # 50-80MB直接运行

原始文件:
└── hostexecutor.exe           # 主程序
├── flutter_windows.dll        # Flutter 引擎
├── *.dll                     # 运行时库
└── data/                     # 应用数据

⚙️ 技术实现

自动下载 Enigma Virtual Box

$enigmaUrl = "https://enigmaprotector.com/assets/files/enigmavb.exe"
Invoke-WebRequest -Uri $enigmaUrl -OutFile "C:\enigmavb.exe"

智能打包逻辑

  1. 尝试 Enigma - 创建真正的单文件
  2. 失败时回退 - 使用 7-Zip 自解压
  3. 总是成功 - 确保有输出文件

压缩优化

  • 压缩级别: 最高压缩率 (/compress)
  • 虚拟化模式: 内存运行,不写磁盘
  • 多线程: 并行处理,加快速度

📋 使用说明

获取单文件 EXE

  1. 进入 Gitea Actions 页面
  2. 找到最新的成功构建
  3. 下载 windows-single-exe 工件
  4. 直接运行 hostexecutor_single.exe

验证打包结果

# 检查文件大小(应该在 50-80MB
dir hostexecutor_single.exe

# 验证单文件(应该只有 1 个文件)
dir *.exe

🎯 优势特点

完全自动化

  • 无需手动操作
  • 自动下载工具
  • 智能错误处理
  • 保证输出结果

高质量打包

  • 真正的单文件
  • 高压缩率
  • 内存运行,不写临时文件
  • 兼容所有 Windows 版本

可靠回退

  • Enigma 失败时自动切换 7-Zip
  • 总是生成可用的输出
  • 详细的构建日志

🔧 自定义配置

修改压缩级别

在工作流脚本中找到:

# 最高压缩(当前设置)
/compress

# 快速压缩(速度优先)
/compress:fast

# 平衡压缩(推荐)
/compress:normal

修改输出文件名

# 当前设置
$outputExe = "$outputPath\$($exeFile.BaseName)_Single.exe"

# 自定义名称
$outputExe = "$outputPath\MyApp_Portable.exe"

📊 性能指标

构建时间

  • Debug 构建: ~4.7 分钟
  • Release 构建: ~27 秒
  • 单文件打包: ~2-5 分钟
  • 总时间: ~8-12 分钟

文件大小

  • 原始文件: ~70MB多文件
  • 单文件: ~50-80MB压缩后
  • 压缩率: 10-30% 减小

🎉 总结

现在工作流完全自动化了!

  • 🔄 每次推送代码 → 自动构建 → 自动打包单文件
  • 📦 构建完成后 → 直接下载单文件 EXE 使用
  • 🔧 无需手动配置 → 开箱即用

你只需要:等待构建完成,下载单文件,直接运行!