name: Build SlideCombine on: push: branches: [ main, master ] tags: - 'v*' pull_request: branches: [ main, master ] workflow_dispatch: # 允许手动触发 jobs: build: runs-on: windows-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup MSBuild uses: microsoft/setup-msbuild@v1.3 - name: Setup NuGet uses: NuGet/setup-nuget@v1 - name: Restore packages run: nuget restore SlideCombine.csproj - name: Build Solution (Release) run: msbuild SlideCombine.csproj /p:Configuration=Release /p:Platform="AnyCPU" /p:TargetFrameworkVersion=v4.6.1 /p:OutputPath=bin\Release\ - name: Create Release Package run: | # 创建版本信息 $version = if ($env:GITHUB_REF -like "refs/tags/*") { $env:GITHUB_REF.Substring(10) } else { "1.0.0" } $date = Get-Date -Format "yyyyMMdd" $packageName = "SlideCombine_Win7_v${version}_${date}" # 创建发布包文件夹 New-Item -ItemType Directory -Force -Path $packageName # 复制主程序 Copy-Item "bin\Release\SlideCombine.exe" -Destination $packageName\ # 复制配置文件(如果存在) if (Test-Path "bin\Release\SlideCombine.exe.config") { Copy-Item "bin\Release\SlideCombine.exe.config" -Destination $packageName\ } # 复制图标文件 if (Test-Path "app.ico") { Copy-Item "app.ico" -Destination $packageName\ } # 创建使用说明 @" PDF书签合并工具 v$version - Windows 7兼容版 ============================================= 系统要求: ✅ Windows 7 SP1 或更高版本 ✅ .NET Framework 4.0 或更高版本(Windows 7 已内置) ✅ 绿色软件,解压即用 使用方法: 1. 双击运行 SlideCombine.exe 2. 选择三个路径: - PDF文件夹路径:包含 FreePic2Pdf_bkmk.txt 文件的文件夹 - TXT源文件路径:包含元数据 TXT 文件的路径 - 输出路径:合并后文件的保存位置 3. 点击"开始合并"按钮 示例目录结构: PDF文件夹/ ├─ CH-875 1-3/FreePic2Pdf_bkmk.txt ├─ CH-875 4-6/FreePic2Pdf_bkmk.txt TXT源文件/ ├─ CH-875 1-3.txt ├─ CH-875 4-6.txt 输出结果: 输出路径/CH-875.txt (合并后的文件) 故障排除: • 如果提示"无法启动应用程序",请安装 .NET Framework 4.5.2 • 下载地址:https://dotnet.microsoft.com/download/dotnet-framework/net452 • 确保有足够的磁盘空间和文件访问权限 技术信息: • 版本: v$version • 构建日期: $date • 目标框架: .NET Framework 4.5.2 • 兼容系统: Windows 7 SP1+ • 文件大小: 约 30-50 KB 特点: • 🚀 启动速度快 • 📦 绿色软件,无需安装 • 🎯 智能文件分组 • 📊 详细处理日志 • 🌍 多编码支持 • 💾 体积小,易分发 "@ | Out-File -FilePath "$packageName\Windows7使用说明.txt" -Encoding UTF8 # 创建启动脚本 @" @echo off title PDF书签合并工具 v$version echo 启动 PDF书签合并工具... echo. if exist "SlideCombine.exe" ( start "" "SlideCombine.exe" echo ✅ 程序已启动 ) else ( echo ❌ 错误:未找到 SlideCombine.exe echo 请确保在正确的目录中运行此脚本 pause ) timeout /t 2 >nul "@ | Out-File -FilePath "$packageName\启动程序.bat" -Encoding Default # 创建兼容性检查脚本 @" @echo off echo Windows 7 兼容性检查 echo ==================== echo 检查操作系统版本... ver echo. echo 检查 .NET Framework... if exist "C:\Windows\Microsoft.NET\Framework64\v4.0.30319" ( echo ✅ 找到 .NET Framework 4.x (64位) ) else ( if exist "C:\Windows\Microsoft.NET\Framework\v4.0.30319" ( echo ✅ 找到 .NET Framework 4.x (32位) ) else ( echo ❌ 未找到 .NET Framework 4.x echo 请安装 .NET Framework 4.5.2 echo 下载地址:https://dotnet.microsoft.com/download/dotnet-framework/net452 ) ) echo. echo 兼容性检查完成 echo 如果有❌标记,请安装 .NET Framework 4.5.2 echo. pause "@ | Out-File -FilePath "$packageName\兼容性检查.bat" -Encoding Default # 获取文件大小 $fileInfo = Get-Item "$packageName\SlideCombine.exe" $sizeKB = [math]::Round($fileInfo.Length / 1KB, 1) $sizeMB = [math]::Round($fileInfo.Length / 1MB, 2) Write-Host "🎉 发布包创建完成!" Write-Host "📁 包名: $packageName" Write-Host "💾 主程序大小: $sizeKB KB ($sizeMB MB)" # 发布包信息 @" 📊 发布包信息 ============ • 包名: $packageName • 版本: v$version • 构建日期: $date • 主程序大小: $sizeKB KB ($sizeMB MB) • 目标系统: Windows 7 SP1+ • 目标框架: .NET Framework 4.5.2 📋 包含内容: ├─ SlideCombine.exe (主程序,约 $sizeKB KB) ├─ Windows7使用说明.txt (用户指南) ├─ 启动程序.bat (快捷启动) └─ 兼容性检查.bat (环境检查) 🎯 部署说明: 1. 将整个文件夹复制到目标电脑 2. 运行"兼容性检查.bat"确保环境正确 3. 双击"启动程序.bat"或直接运行SlideCombine.exe 4. 无需安装任何软件,绿色环保! 🔄 版本信息: • 程序版本: v$version • 构建时间: $date • 构建环境: GitHub Actions Windows Latest • 目标框架: .NET Framework 4.5.2 • 兼容性: Windows 7 SP1 - Windows 11 "@ | Out-File -FilePath "$packageName\发布信息.txt" -Encoding UTF8 # 压缩发布包 Compress-Archive -Path "$packageName\*" -DestinationPath "$packageName.zip" # 输出信息到Actions日志 Get-ChildItem "$packageName.zip" | ForEach-Object { Write-Host "::set-output name=package_name::$packageName" Write-Host "::set-output name=package_size::$($_.Length)" Write-Host "::set-output name=package_path::$($_.FullName)" } shell: powershell - name: Upload Artifact uses: actions/upload-artifact@v3 with: name: SlideCombine-Win7-Package path: "*.zip" retention-days: 30 - name: Create Release if: startsWith(github.ref, 'refs/tags/') uses: softprops/action-gh-release@v1 with: files: "*.zip" draft: false prerelease: false name: "PDF书签合并工具 v${{ github.ref_name }}" body: | ## PDF书签合并工具 v${{ github.ref_name }} 🎯 **Windows 7 兼容版本** ### 系统要求 - Windows 7 SP1 或更高版本 - .NET Framework 4.5.2 或更高版本(通常已内置) ### 下载说明 1. 下载 `SlideCombine_Win7_v${{ github.ref_name }}_*.zip` 2. 解压到任意文件夹 3. 运行 `启动程序.bat` 或直接双击 `SlideCombine.exe` ### 特点 - ✅ 绿色软件,无需安装 - ✅ 体积小,启动快 - ✅ 智能文件分组 - ✅ 详细处理日志 - ✅ 多编码支持 ### 技术信息 - 目标框架:.NET Framework 4.0 - 文件大小:约 30-50 KB - 兼容系统:Windows 7 SP1 到 Windows 11 --- 🤖 自动构建于 ${{ github.event.head_commit.timestamp }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}