# 工作流自动打包单文件 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 ```powershell $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` ### 验证打包结果 ```powershell # 检查文件大小(应该在 50-80MB) dir hostexecutor_single.exe # 验证单文件(应该只有 1 个文件) dir *.exe ``` ## 🎯 优势特点 ### 完全自动化 - ✅ 无需手动操作 - ✅ 自动下载工具 - ✅ 智能错误处理 - ✅ 保证输出结果 ### 高质量打包 - ✅ 真正的单文件 - ✅ 高压缩率 - ✅ 内存运行,不写临时文件 - ✅ 兼容所有 Windows 版本 ### 可靠回退 - ✅ Enigma 失败时自动切换 7-Zip - ✅ 总是生成可用的输出 - ✅ 详细的构建日志 ## 🔧 自定义配置 ### 修改压缩级别 在工作流脚本中找到: ```powershell # 最高压缩(当前设置) /compress # 快速压缩(速度优先) /compress:fast # 平衡压缩(推荐) /compress:normal ``` ### 修改输出文件名 ```powershell # 当前设置 $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 使用 - 🔧 无需手动配置 → 开箱即用 **你只需要**:等待构建完成,下载单文件,直接运行!✨