技术决策变更: - 移除所有Python相关文件(slide_combine.py, build_exe.py等) - 专注于C# .NET Framework 4.5.2方案,确保Windows 7原生支持 - 优化项目配置,移除不兼容的依赖引用 新增功能: - GitHub Actions自动编译工作流(.github/workflows/build.yml) 支持自动构建、打包、发布 - Windows 7专用编译脚本(build_win7.bat) 智能查找MSBuild,创建完整发布包 - 详细的Windows 7使用文档(README_Windows7.md) 包含故障排除、部署说明、技术特性 项目优化: - SlideCombine.csproj: 使用XML标准格式,移除不兼容引用 - 目标框架锁定为.NET Framework 4.5.2 - 添加完整的Windows 7兼容性检查脚本 优势特点: - ✅ Windows 7 SP1+ 原生支持(系统内置.NET Framework 4.5.2) - ✅ 绿色软件(30-50 KB,无需安装) - ✅ 自动化构建(GitHub Actions) - ✅ 完整部署包(使用说明、启动脚本、兼容性检查) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
255 lines
7.3 KiB
YAML
255 lines
7.3 KiB
YAML
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: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.5.2 或更高版本(通常已内置)
|
||
✅ 绿色软件,解压即用
|
||
|
||
使用方法:
|
||
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.5.2
|
||
- 文件大小:约 30-50 KB
|
||
- 兼容系统:Windows 7 SP1 到 Windows 11
|
||
|
||
---
|
||
🤖 自动构建于 ${{ github.event.head_commit.timestamp }}
|
||
env:
|
||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |