@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