SlideCombine/build_modern.bat

269 lines
7.7 KiB
Batchfile
Raw Normal View History

@echo off
title PDF书签合并工具 - 现代化版本编译发布
chcp 65001 >nul
echo ==========================================
echo PDF书签合并工具 - .NET 8.0 现代版
echo ==========================================
echo.
REM 检查项目文件
if not exist "SlideCombine_Modern.csproj" (
echo ❌ 错误:未找到 SlideCombine_Modern.csproj 项目文件
echo 请确保在项目根目录下运行此脚本
pause
exit /b 1
)
echo ✅ 现代化项目文件检查通过
echo.
REM 检查 .NET SDK
echo 🔍 检查 .NET SDK ...
dotnet --version >nul 2>&1
if %ERRORLEVEL% neq 0 (
echo ❌ 错误:未找到 .NET SDK
echo 请安装 .NET 8.0 SDK:
echo https://dotnet.microsoft.com/download/dotnet/8.0
pause
exit /b 1
)
set DOTNET_VERSION=
for /f "tokens=*" %%i in ('dotnet --version') do set DOTNET_VERSION=%%i
echo ✅ 找到 .NET SDK 版本:%DOTNET_VERSION%
echo.
REM 创建版本信息
set VERSION=3.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 🧹 清理之前的构建...
if exist "bin" rd /s /q "bin"
if exist "obj" rd /s /q "obj"
if exist "publish" rd /s /q "publish"
echo ✅ 清理完成
echo.
REM 编译发布
echo 🔨 编译现代化版本...
echo 目标win-x64 自包含单文件
echo 框架:.NET 8.0
echo.
dotnet publish SlideCombine_Modern.csproj ^
--configuration Release ^
--runtime win-x64 ^
--self-contained true ^
--output "publish" ^
-p:PublishSingleFile=true ^
-p:PublishReadyToRun=true ^
-p:IncludeNativeLibrariesForSelfExtract=true ^
-p:DebugType=None ^
-p:DebugSymbols=false
if %ERRORLEVEL% neq 0 (
echo ❌ 编译失败!
echo 请检查代码中的错误
pause
exit /b 1
)
echo ✅ 编译成功!
echo.
REM 检查输出文件
if not exist "publish\SlideCombine.exe" (
echo ❌ 错误:未找到编译输出文件
echo 期望文件路径publish\SlideCombine.exe
pause
exit /b 1
)
REM 获取文件大小
for %%F in ("publish\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 文件大小:%FILE_SIZE_KB% KB (%FILE_SIZE_MB% MB)
echo.
REM 创建发布包
echo 📦 创建现代化发布包...
set RELEASE_NAME=SlideCombine_v%VERSION%_%DATE%
if exist "%RELEASE_NAME%" rd /s /q "%RELEASE_NAME%"
mkdir "%RELEASE_NAME%"
REM 复制主程序
echo 📄 复制主程序...
copy "publish\SlideCombine.exe" "%RELEASE_NAME%\" >nul
REM 创建现代化使用说明
echo 📝 创建使用说明...
(
echo PDF书签合并工具 v%VERSION% - 现代化版本
echo ==========================================
echo.
echo 🎯 版本特色:
echo • .NET 8.0 最新技术栈
echo • 自包含单文件 - 无需运行时
echo • 跨平台支持 (Windows)
echo • 高性能启动
echo • 现代化UI体验
echo.
echo 💻 系统要求:
echo ✅ Windows 7 SP1 或更高版本
echo ✅ Windows 8/8.1
echo ✅ Windows 10 (推荐)
echo ✅ Windows 11
echo ✅ 无需安装 .NET 或其他运行时
echo.
echo 🚀 使用方法:
echo 1. 双击运行 SlideCombine.exe
echo 2. 选择三个路径:
echo • PDF文件夹路径包含 FreePic2Pdf_bkmk.txt 文件的文件夹
echo • TXT源文件路径包含元数据 TXT 文件的路径
echo • 输出路径:合并后文件的保存位置
echo 3. 点击"🚀 开始合并"按钮
echo 4. 查看实时处理日志
echo 5. 等待处理完成
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运行时
echo • 📦 单文件部署整个程序只有一个exe文件
echo • ⚡ 高性能:.NET 8.0 最新优化
echo • 🎨 现代化UI流畅的用户体验
echo • 🔒 安全可靠:最新安全特性
echo • 🌍 多编码支持UTF-8, GBK, GB2312
echo • 📊 智能处理:自动文件分组和错误处理
echo.
echo 🔧 故障排除:
echo • 程序无法启动:请检查是否有杀毒软件阻止
echo • 权限问题:右键"以管理员身份运行"
echo • 文件访问:确保对输入输出路径有读写权限
echo.
echo 📋 版本信息:
echo • 程序版本v%VERSION%
echo • 构建日期:%DATE%
echo • 开发框架:.NET 8.0
echo • 编译环境Windows 10 + VS 2026
echo • 文件大小:%FILE_SIZE_KB% KB (%FILE_SIZE_MB% MB)
echo • 发布方式:自包含单文件
echo.
echo 🎉 享受现代化PDF书签合并体验
) > "%RELEASE_NAME%\现代化使用说明.txt"
REM 创建启动脚本
echo 🚀 创建启动脚本...
(
echo @echo off
echo title PDF书签合并工具 v%VERSION%
echo echo 启动 PDF书签合并工具 v%VERSION%...
echo echo .NET 8.0 现代化版本
echo echo.
echo.
echo if exist "SlideCombine.exe" ^(
echo echo ✅ 程序已启动 - .NET 8.0 自包含版本
echo start "" "SlideCombine.exe"
echo ^) else ^(
echo echo ❌ 错误:未找到 SlideCombine.exe
echo echo 请确保在正确的目录中运行此脚本
echo pause
echo ^)
echo.
echo timeout /t 2 ^>nul
) > "%RELEASE_NAME%\启动程序.bat"
REM 创建系统信息脚本
echo 🔍 创建系统信息脚本...
(
echo @echo off
echo title 系统信息检查
echo echo PDF书签合并工具 - 系统信息检查
echo echo =====================================
echo echo.
echo echo 操作系统信息:
echo ver
echo echo.
echo echo 系统架构:
echo if "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
echo echo ✅ 64位系统 ^(推荐^)
echo ^) else (
echo ⚠️ 32位系统 ^(支持^)
echo ^)
echo echo.
echo echo 内存信息:
echo systeminfo ^| findstr /C:"Total Physical Memory"
echo echo.
echo echo 程序要求:
echo echo ✅ Windows 7 SP1+ 或更高版本
echo echo ✅ 无需安装任何运行时 ^(自包含^)
echo echo ✅ 推荐至少 100MB 可用磁盘空间
echo echo.
echo echo 系统已准备就绪!
echo echo.
echo pause
) > "%RELEASE_NAME%\系统检查.bat"
echo.
echo ==========================================
echo 🎉 现代化编译完成
echo ==========================================
echo ✅ 编译状态:成功
echo 📦 发布包名称:%RELEASE_NAME%
echo 💾 主程序大小:%FILE_SIZE_KB% KB (%FILE_SIZE_MB% MB)
echo 🎯 目标框架:.NET 8.0
echo 🖥️ 目标平台win-x64
echo 📁 发布包位置:%CD%\%RELEASE_NAME%\
echo ⚡ 发布包内容:
echo ├─ SlideCombine.exe ^(主程序,%FILE_SIZE_KB% KB^)
echo ├─ 现代化使用说明.txt ^(详细指南^)
echo ├─ 启动程序.bat ^(快捷启动^)
echo └─ 系统检查.bat ^(环境检查^)
echo.
echo 🌟 现代化优势:
echo • ✅ 自包含单文件 - 无需安装.NET运行时
echo • ✅ 高性能启动 - .NET 8.0 最新优化
echo • ✅ 跨版本兼容 - Windows 7 到 Windows 11
echo • ✅ 现代化技术栈 - 最新安全特性
echo • ✅ 开发友好 - VS 2026 完美支持
echo.
echo 🎯 部署说明:
echo 1. 将整个 %RELEASE_NAME% 文件夹复制到任意电脑
echo 2. 运行"系统检查.bat"确保环境正确
echo 3. 双击"启动程序.bat"或直接运行SlideCombine.exe
echo 4. 无需安装任何软件,真正绿色环保!
echo.
REM 询问是否打开发布文件夹
echo 是否打开发布文件夹?(Y/N)
set /p choice=请输入选择:
if /i "%choice%"=="Y" (
start "" "%RELEASE_NAME%"
echo ✅ 已打开发布文件夹
)
echo.
echo 🎉 现代化编译发布完成!按任意键退出...
pause >nul