SlideCombine/打包发布.bat

271 lines
9.2 KiB
Batchfile
Raw Permalink Normal View History

@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