Workflow config file is invalid. Please check your config file: yaml: line 61: could not find expected ':'
yuuko ad4701c904 升级到 .NET Framework 4.6.1 - 兼容VS 2022的平衡选择
技术决策:
- VS 2022不支持.NET Framework 4.0和4.5.2
- 升级到4.6.1,获得VS 2022完整支持
- 平衡开发便利性和用户兼容性

版本选择优势:
 Visual Studio 2022完全支持
 大多数Windows 7已安装4.6.1(通过Windows Update)
 更好的性能和安全性
 现代化开发环境和工具支持

更新内容:
- SlideCombine.csproj: 目标框架 4.0 → 4.6.1
- build_win7.bat: 编译脚本更新
- GitHub Actions: 自动构建使用4.6.1
- 版本选择说明.md: 详细解释选择原因

用户体验:
- 主流用户:已安装4.6.1,直接使用
- 少数用户:提示安装.NET Framework 4.6.1(40MB)
- 安装链接:https://dotnet.microsoft.com/download/dotnet-framework/net461

这是兼顾开发效率和用户体验的最佳平衡点!

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 18:30:47 +08:00

255 lines
7.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 }}