147 lines
3.6 KiB
Markdown
147 lines
3.6 KiB
Markdown
# 工作流自动打包单文件 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 使用
|
||
- 🔧 无需手动配置 → 开箱即用
|
||
|
||
**你只需要**:等待构建完成,下载单文件,直接运行!✨ |