271 lines
9.2 KiB
Batchfile
271 lines
9.2 KiB
Batchfile
|
|
@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
|