SlideCombine/打包发布.bat
yuuko a156fff7f4 优化部署方案:降级到 .NET Framework 4.5.2 并创建完整打包脚本
- 降级目标框架从 .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 <noreply@anthropic.com>
2025-11-24 17:13:20 +08:00

271 lines
9.2 KiB
Batchfile
Raw Permalink 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.

@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 - IDEVisual 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