From a156fff7f4f1f8c209b28379807a9c897d3461a2 Mon Sep 17 00:00:00 2001 From: yuuko Date: Mon, 24 Nov 2025 17:13:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=83=A8=E7=BD=B2=E6=96=B9?= =?UTF-8?q?=E6=A1=88=EF=BC=9A=E9=99=8D=E7=BA=A7=E5=88=B0=20.NET=20Framewor?= =?UTF-8?q?k=204.5.2=20=E5=B9=B6=E5=88=9B=E5=BB=BA=E5=AE=8C=E6=95=B4?= =?UTF-8?q?=E6=89=93=E5=8C=85=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 降级目标框架从 .NET Framework 4.8 到 4.5.2,提高系统兼容性 - 移除新版特性支持,确保在大多数 Windows 系统(Win7-Win11)上直接运行 - 添加 build.bat - 基础编译脚本 - 添加 打包发布.bat - 一键打包发布脚本,自动生成完整发布包 - 添加 部署指南.md - 详细的部署和使用说明文档 - 打包脚本会自动创建使用说明、技术文档和启动脚本 - 实现真正的绿色软件部署:无需安装,复制即用 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- SlideCombine.csproj | 6 +- build.bat | 75 ++++++++++++ 打包发布.bat | 271 ++++++++++++++++++++++++++++++++++++++++++++ 部署指南.md | 134 ++++++++++++++++++++++ 4 files changed, 482 insertions(+), 4 deletions(-) create mode 100644 build.bat create mode 100644 打包发布.bat create mode 100644 部署指南.md diff --git a/SlideCombine.csproj b/SlideCombine.csproj index 165ddc2..ea2b4ce 100644 --- a/SlideCombine.csproj +++ b/SlideCombine.csproj @@ -7,11 +7,9 @@ WinExe SlideCombine SlideCombine - v4.8 + v4.5.2 512 - true - true - true + true AnyCPU diff --git a/build.bat b/build.bat new file mode 100644 index 0000000..e40588c --- /dev/null +++ b/build.bat @@ -0,0 +1,75 @@ +@echo off +echo 编译 PDF书签合并工具... +echo. + +REM 设置Visual Studio环境变量 +set MSBUILD_PATH= +if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe" ( + set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe +) +if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MSBuild.exe" ( + set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MSBuild.exe +) +if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe" ( + set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe +) +if exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe" ( + set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe +) +if exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe" ( + set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe +) +if exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" ( + set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe +) + +if "%MSBUILD_PATH%"=="" ( + echo 错误:未找到 MSBuild.exe + echo 请确保已安装 Visual Studio 2017 或 2019 + pause + exit /b 1 +) + +echo 找到 MSBuild: %MSBUILD_PATH% +echo. + +REM 清理之前的编译 +echo 清理之前的编译... +"%MSBUILD_PATH%" SlideCombine.csproj /t:Clean /p:Configuration=Release /p:Platform="AnyCPU" + +REM 编译 Release 版本 +echo 编译 Release 版本... +"%MSBUILD_PATH%" SlideCombine.csproj /t:Build /p:Configuration=Release /p:Platform="AnyCPU" + +if %ERRORLEVEL% equ 0 ( + echo. + echo ✅ 编译成功! + echo 输出文件位置: bin\Release\SlideCombine.exe + echo. + echo 正在创建发布包... + + REM 创建发布文件夹 + if not exist "发布包" mkdir "发布包" + + REM 复制主程序 + copy "bin\Release\SlideCombine.exe" "发布包\" + + REM 复制依赖文件(如果有的话) + if exist "bin\Release\SlideCombine.exe.config" ( + copy "bin\Release\SlideCombine.exe.config" "发布包\" + ) + + echo ✅ 发布包创建完成! + echo 文件夹位置: 发布包\ + echo. + echo 📋 使用说明: + echo 1. 发布包文件夹可以直接复制到其他电脑 + echo 2. 目标电脑需要 .NET Framework 4.5.2 或更高版本(Windows 7/10 通常自带) + echo 3. 双击 SlideCombine.exe 即可运行 + echo. + +) else ( + echo ❌ 编译失败!请检查代码错误 +) + +pause \ No newline at end of file diff --git a/打包发布.bat b/打包发布.bat new file mode 100644 index 0000000..4e67b07 --- /dev/null +++ b/打包发布.bat @@ -0,0 +1,271 @@ +@echo off +title PDF书签合并工具 - 一键打包发布 + +echo ========================================== +echo PDF书签合并工具 - 一键打包发布 +echo ========================================== +echo. + +REM 检查项目文件 +if not exist "SlideCombine.csproj" ( + echo ❌ 错误:未找到 SlideCombine.csproj 项目文件 + echo 请确保在项目根目录下运行此脚本 + pause + exit /b 1 +) + +echo ✅ 项目文件检查通过 +echo. + +REM 查找 MSBuild +echo 🔍 正在查找 MSBuild... +set MSBUILD_PATH= +if exist "C:\Program Files (x86)\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\MSBuild.exe" ( + set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\MSBuild.exe + echo ✅ 找到 Visual Studio 2022 Enterprise +) +if exist "C:\Program Files (x86)\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\MSBuild.exe" ( + set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\MSBuild.exe + echo ✅ 找到 Visual Studio 2022 Professional +) +if exist "C:\Program Files (x86)\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe" ( + set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe + echo ✅ 找到 Visual Studio 2022 Community +) +if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe" ( + set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe + echo ✅ 找到 Visual Studio 2019 Enterprise +) +if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MSBuild.exe" ( + set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MSBuild.exe + echo ✅ 找到 Visual Studio 2019 Professional +) +if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe" ( + set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe + echo ✅ 找到 Visual Studio 2019 Community +) +if exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe" ( + set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe + echo ✅ 找到 Visual Studio 2017 Enterprise +) +if exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe" ( + set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe + echo ✅ 找到 Visual Studio 2017 Professional +) +if exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" ( + set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe + echo ✅ 找到 Visual Studio 2017 Community +) + +if "%MSBUILD_PATH%"=="" ( + echo ❌ 错误:未找到 MSBuild.exe + echo 请确保已安装 Visual Studio 2017、2019 或 2022 + echo. + echo 如果没有 Visual Studio,可以下载以下工具: + echo https://visualstudio.microsoft.com/zh-hans/downloads/ + echo. + pause + exit /b 1 +) + +echo ✅ MSBuild 路径:%MSBUILD_PATH% +echo. + +REM 创建版本信息 +set VERSION=1.0.0 +set DATE=%date:~0,4%%date:~5,2%%date:~8,2% +set TIME=%time:~0,2%%time:~3,2% +set TIME=%TIME: =0% + +echo 📅 版本信息:%VERSION% (%DATE% %TIME%) +echo. + +REM 清理之前的构建 +echo 🧹 清理之前的构建... +"%MSBUILD_PATH%" SlideCombine.csproj /t:Clean /p:Configuration=Release /p:Platform="AnyCPU" /v:minimal + +REM 构建 Release 版本 +echo 🔨 编译 Release 版本... +"%MSBUILD_PATH%" SlideCombine.csproj /t:Build /p:Configuration=Release /p:Platform="AnyCPU" /v:minimal + +if %ERRORLEVEL% neq 0 ( + echo ❌ 编译失败! + echo 请检查代码中的错误 + pause + exit /b 1 +) + +echo ✅ 编译成功! +echo. + +REM 检查编译输出 +if not exist "bin\Release\SlideCombine.exe" ( + echo ❌ 错误:未找到编译输出文件 + echo 期望文件路径:bin\Release\SlideCombine.exe + pause + exit /b 1 +) + +REM 创建发布包 +echo 📦 创建发布包... + +REM 设置发布包名称 +set RELEASE_NAME=SlideCombine_v%VERSION%_%DATE% +if exist "%RELEASE_NAME%" rd /s /q "%RELEASE_NAME%" +mkdir "%RELEASE_NAME%" + +REM 复制主程序 +echo 📄 复制主程序... +copy "bin\Release\SlideCombine.exe" "%RELEASE_NAME%\" >nul + +REM 复制配置文件(如果存在) +if exist "bin\Release\SlideCombine.exe.config" ( + copy "bin\Release\SlideCombine.exe.config" "%RELEASE_NAME%\" >nul + echo ✅ 复制配置文件 +) + +REM 复制图标文件(如果存在) +if exist "app.ico" ( + copy "app.ico" "%RELEASE_NAME%\" >nul + echo ✅ 复制图标文件 +) + +REM 创建使用说明 +echo 📝 创建使用说明... +( +echo PDF书签合并工具 v%VERSION% 使用说明 +echo ===================================== +echo. +echo 系统要求: +echo - Windows 7 SP1 或更高版本 +echo - .NET Framework 4.5.2 或更高版本(通常已自带) +echo. +echo 使用方法: +echo 1. 双击运行 SlideCombine.exe +echo 2. 选择三个路径: +echo - PDF文件夹路径:包含 FreePic2Pdf_bkmk.txt 文件的文件夹 +echo - TXT源文件路径:包含元数据 TXT 文件的路径 +echo - 输出路径:合并后文件的保存位置 +echo 3. 点击"开始合并"按钮 +echo 4. 等待处理完成 +echo. +echo 示例目录结构: +echo PDF文件夹/ +echo ├─ CH-875 1-3/FreePic2Pdf_bkmk.txt +echo ├─ CH-875 4-6/FreePic2Pdf_bkmk.txt +echo. +echo TXT源文件/ +echo ├─ CH-875 1-3.txt +echo ├─ CH-875 4-6.txt +echo. +echo 输出结果: +echo 输出路径/CH-875.txt ^(合并后的文件^) +echo. +echo 故障排除: +echo - 如果提示"应用程序无法启动",请安装 .NET Framework 4.5.2 +echo - 下载地址:https://dotnet.microsoft.com/download/dotnet-framework/net452 +echo. +echo 编译时间:%DATE% %TIME% +echo 程序版本:v%VERSION% +echo 目标框架:.NET Framework 4.5.2 +) > "%RELEASE_NAME%\使用说明.txt" + +REM 创建技术说明 +echo 📋 创建技术说明... +( +echo PDF书签合并工具 - 技术说明 +echo ============================= +echo. +echo 程序信息: +echo - 名称:PDF书签合并工具 +echo - 版本:v%VERSION% +echo - 开发语言:C# +echo - 目标框架:.NET Framework 4.5.2 +echo - 编译时间:%DATE% %TIME% +echo. +echo 功能说明: +echo 1. 从 FreePic2Pdf_bkmk.txt 文件提取书签目录 +echo 2. 从 TXT 文件读取文档元数据 +echo 3. 按文件名前缀智能合并文件 +echo 4. 生成符合标准的格式化输出 +echo. +echo 文件格式: +echo - 输入格式:FreePic2Pdf_bkmk.txt, 元数据TXT文件 +echo - 输出格式:合并后的TXT文件,包含完整元数据和书签目录 +echo. +echo 兼容性: +echo - 操作系统:Windows 7 SP1, Windows 8/8.1, Windows 10/11 +echo - 依赖框架:.NET Framework 4.5.2 或更高版本 +echo. +echo 部署方式: +echo - 绿色软件,无需安装 +echo - 直接复制 SlideCombine.exe 即可运行 +echo - 建议将整个文件夹打包分发 +echo. +echo 开发信息: +echo - IDE:Visual Studio 2017/2019/2022 +echo - 项目类型:Windows Forms 应用程序 +echo - 编码:UTF-8, GBK, GB2312 自动检测 +) > "%RELEASE_NAME%\技术说明.txt" + +REM 创建批处理启动脚本 +echo 🚀 创建启动脚本... +( +echo @echo off +echo title PDF书签合并工具 v%VERSION% +echo echo 启动 PDF书签合并工具... +echo echo. +echo if exist "SlideCombine.exe" ( +echo start "" "SlideCombine.exe" +echo echo ✅ 程序已启动 +echo ) else ( +echo echo ❌ 错误:未找到 SlideCombine.exe +echo echo 请确保在正确的目录中运行此脚本 +echo pause +echo ) +echo timeout /t 2 >nul +) > "%RELEASE_NAME%\启动程序.bat" + +REM 获取文件大小 +for %%F in ("%RELEASE_NAME%\SlideCombine.exe") do set FILE_SIZE=%%~zF +set /a FILE_SIZE_MB=%FILE_SIZE% / 1024 / 1024 +set /a FILE_SIZE_KB=%FILE_SIZE% / 1024 + +echo. +echo ========================================== +echo 📊 打包完成统计 +echo ========================================== +echo ✅ 编译状态:成功 +echo 📦 发布包名称:%RELEASE_NAME% +echo 💾 主程序大小:%FILE_SIZE_KB% KB %FILE_SIZE_MB% MB +echo 📁 发布包位置:%CD%\%RELEASE_NAME%\ +echo ⚡ 发布包内容: +echo ├─ SlideCombine.exe ^(主程序^) +echo ├─ 使用说明.txt ^(用户指南^) +echo ├─ 技术说明.txt ^(开发文档^) +echo └─ 启动程序.bat ^(快捷启动^) +echo. +echo 🎉 发布包创建成功! +echo. +echo 🔧 部署说明: +echo 1. 将整个 %RELEASE_NAME% 文件夹复制到目标电脑 +echo 2. 目标电脑需要 .NET Framework 4.5.2 或更高版本 +echo 3. 双击"启动程序.bat"或直接运行"SlideCombine.exe" +echo. +echo 📋 下一步: +echo - 测试程序是否正常运行 +echo - 复制到 U 盘或上传到网络进行分发 +echo - 如果遇到问题,请检查目标电脑的 .NET Framework 版本 +echo. + +REM 询问是否打开发布文件夹 +echo 是否打开发布文件夹?(Y/N) +set /p choice=请输入选择: +if /i "%choice%"=="Y" ( + start "" "%RELEASE_NAME%" + echo ✅ 已打开发布文件夹 +) + +echo. +echo 打包流程完成!按任意键退出... +pause >nul \ No newline at end of file diff --git a/部署指南.md b/部署指南.md new file mode 100644 index 0000000..b7f8e49 --- /dev/null +++ b/部署指南.md @@ -0,0 +1,134 @@ +# PDF书签合并工具 - 部署指南 + +## 🎯 简单部署方案(推荐) + +### 方案特点 +- ✅ 无需安装开发环境 +- ✅ 依赖项少,兼容性强 +- ✅ 支持从 Windows 7 到 Windows 11 +- ✅ 直接复制运行,绿色软件 + +### 部署步骤 + +#### 1️⃣ 编译程序 +在 Visual Studio 中: +1. 打开 `SlideCombine.csproj` +2. 配置选择 `Release` +3. 平台选择 `AnyCPU` +4. 点击 `生成` → `生成解决方案` + +或者使用提供的 `build.bat` 脚本: +1. 双击运行 `build.bat` +2. 等待编译完成 + +#### 2️⃣ 创建发布包 +编译完成后: +1. 找到 `bin\Release\SlideCombine.exe` 文件 +2. 创建一个新文件夹(如 `SlideCombine`) +3. 将 `SlideCombine.exe` 复制到该文件夹 + +#### 3️⃣ 部署到目标电脑 +只需将包含 `SlideCombine.exe` 的文件夹复制到目标电脑即可! + +## 🔧 目标电脑系统要求 + +### 操作系统支持 +- ✅ Windows 7 SP1 或更高版本 +- ✅ Windows 8/8.1 +- ✅ Windows 10/11 + +### .NET Framework 要求 +- 🔹 最低要求:.NET Framework 4.5.2 +- 🔹 大多数 Windows 7/10 系统已自带 +- 🔹 如需检查:控制面板 → 程序 → 启用或关闭 Windows 功能 + +### 如何检查是否已安装 +1. 打开 `C:\Windows\Microsoft.NET\Framework64\` +2. 查找是否存在 `v4.0.30319` 文件夹 +3. 或在 PowerShell 中运行:`dir "C:\Windows\Microsoft.NET\Framework64\v4*"` + +## 📦 发布包内容说明 + +发布包只需包含以下文件: +``` +SlideCombine/ +├── SlideCombine.exe # 主程序 +└── 使用说明.txt # 用户使用指南(可选) +``` + +## 🚀 使用方法 + +### 基本使用 +1. 双击运行 `SlideCombine.exe` +2. 选择三个路径: + - 📁 PDF文件夹路径:包含 FreePic2Pdf_bkmk.txt 文件的文件夹 + - 📄 TXT源文件路径:包含元数据 TXT 文件的路径 + - 💾 输出路径:合并后文件的保存位置 +3. 点击 `🚀 开始合并` +4. 等待处理完成 + +### 文件结构示例 +``` +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 # 合并后的文件 +``` + +## 🔍 故障排除 + +### 常见问题 + +#### Q1:提示"应用程序无法启动" +**解决方案**: +1. 检查是否安装 .NET Framework 4.5.2 +2. 下载安装:https://dotnet.microsoft.com/download/dotnet-framework/net452 + +#### Q2:找不到 MSBuild +**解决方案**: +1. 安装 Visual Studio 2017/2019/2022 +2. 或下载 .NET Framework 4.5.2 Developer Pack + +#### Q3:程序运行时出现错误 +**解决方案**: +1. 检查输入路径是否正确 +2. 确保文件格式符合要求 +3. 检查文件权限 + +### 联系支持 +如果遇到问题,请检查: +1. 文件路径是否包含中文字符 +2. 是否有足够的磁盘空间 +3. 杀毒软件是否误报 + +## 📝 版本信息 + +- **当前版本**:v1.0 +- **目标框架**:.NET Framework 4.5.2 +- **文件大小**:约 30-50 KB +- **依赖项**:.NET Framework 4.5.2 + +## 🔄 更新部署 + +如需更新程序: +1. 编译新版本 +2. 复制新的 `SlideCombine.exe` 覆盖旧文件 +3. 配置文件和用户数据会保留 + +--- + +## 🎉 总结 + +使用 .NET Framework 4.5.2 的优势: +- ✅ 几乎所有 Windows 系统都自带,无需额外安装 +- ✅ 兼容性强,支持 Windows 7 到 Windows 11 +- ✅ 文件小,部署简单 +- ✅ 绿色软件,复制即用 + +这是最简单、最可靠的部署方案! \ No newline at end of file