326 lines
11 KiB
Batchfile
326 lines
11 KiB
Batchfile
|
|
@echo off
|
|||
|
|
title PDF书签合并工具 - Windows 7兼容编译
|
|||
|
|
chcp 65001 >nul
|
|||
|
|
|
|||
|
|
echo ==========================================
|
|||
|
|
echo PDF书签合并工具 - Windows 7兼容编译
|
|||
|
|
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=
|
|||
|
|
|
|||
|
|
REM Visual Studio 2022
|
|||
|
|
if exist "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\MSBuild.exe" (
|
|||
|
|
set MSBUILD_PATH=C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\MSBuild.exe
|
|||
|
|
echo ✅ 找到 Visual Studio 2022 Enterprise
|
|||
|
|
)
|
|||
|
|
if exist "C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\MSBuild.exe" (
|
|||
|
|
set MSBUILD_PATH=C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\MSBuild.exe
|
|||
|
|
echo ✅ 找到 Visual Studio 2022 Professional
|
|||
|
|
)
|
|||
|
|
if exist "C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe" (
|
|||
|
|
set MSBUILD_PATH=C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe
|
|||
|
|
echo ✅ 找到 Visual Studio 2022 Community
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
REM Visual Studio 2019
|
|||
|
|
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
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
REM Visual Studio 2017
|
|||
|
|
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
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
REM MSBuild Tools
|
|||
|
|
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\MSBuild.exe" (
|
|||
|
|
set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\MSBuild.exe
|
|||
|
|
echo ✅ 找到 MSBuild Tools 2019
|
|||
|
|
)
|
|||
|
|
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe" (
|
|||
|
|
set MSBUILD_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe
|
|||
|
|
echo ✅ 找到 MSBuild Tools 2017
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
REM .NET Framework MSBuild
|
|||
|
|
if exist "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" (
|
|||
|
|
set MSBUILD_PATH=C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe
|
|||
|
|
echo ✅ 找到 .NET Framework MSBuild (64位)
|
|||
|
|
)
|
|||
|
|
if exist "C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" (
|
|||
|
|
set MSBUILD_PATH=C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
|
|||
|
|
echo ✅ 找到 .NET Framework MSBuild (32位)
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
if "%MSBUILD_PATH%"=="" (
|
|||
|
|
echo ❌ 错误:未找到 MSBuild.exe
|
|||
|
|
echo.
|
|||
|
|
echo 请安装以下工具之一:
|
|||
|
|
echo 1. Visual Studio 2017/2019/2022
|
|||
|
|
echo 2. MSBuild Tools
|
|||
|
|
echo 3. .NET Framework 4.5.2 Developer Pack
|
|||
|
|
echo.
|
|||
|
|
echo 下载地址:
|
|||
|
|
echo • Visual Studio Community: https://visualstudio.microsoft.com/zh-hans/vs/community/
|
|||
|
|
echo • MSBuild Tools: https://visualstudio.microsoft.com/zh-hans/downloads/#build-tools-for-visual-studio-2019
|
|||
|
|
echo • .NET Framework 4.5.2: https://dotnet.microsoft.com/download/dotnet-framework/net452
|
|||
|
|
echo.
|
|||
|
|
pause
|
|||
|
|
exit /b 1
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
echo ✅ MSBuild 路径:%MSBUILD_PATH%
|
|||
|
|
echo.
|
|||
|
|
|
|||
|
|
REM 创建版本信息
|
|||
|
|
set VERSION=2.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 生成设计器文件(如果不存在)
|
|||
|
|
if not exist "Form1.Designer.cs" (
|
|||
|
|
echo 🎨 生成设计器文件...
|
|||
|
|
REM 这里通常需要在Visual Studio中设计界面,我们假设已存在
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
REM 编译 Release 版本
|
|||
|
|
echo 🔨 编译 Windows 7 兼容版本...
|
|||
|
|
"%MSBUILD_PATH%" SlideCombine.csproj /t:Build /p:Configuration=Release /p:Platform="AnyCPU" /v:minimal /p:TargetFrameworkVersion=v4.5.2
|
|||
|
|
|
|||
|
|
if %ERRORLEVEL% neq 0 (
|
|||
|
|
echo ❌ 编译失败!
|
|||
|
|
echo 请检查代码中的错误
|
|||
|
|
echo.
|
|||
|
|
echo 常见问题:
|
|||
|
|
echo 1. 确保已安装 .NET Framework 4.5.2 Developer Pack
|
|||
|
|
echo 2. 检查代码是否使用了高版本API
|
|||
|
|
echo 3. 确认项目文件配置正确
|
|||
|
|
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 📦 创建 Windows 7 兼容发布包...
|
|||
|
|
|
|||
|
|
REM 设置发布包名称
|
|||
|
|
set RELEASE_NAME=SlideCombine_Win7_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% - Windows 7兼容版
|
|||
|
|
echo =============================================
|
|||
|
|
echo.
|
|||
|
|
echo 系统要求:
|
|||
|
|
echo ✅ Windows 7 SP1 或更高版本
|
|||
|
|
echo ✅ .NET Framework 4.5.2 或更高版本(通常已内置)
|
|||
|
|
echo ✅ 绿色软件,解压即用
|
|||
|
|
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 • 如果杀毒软件误报,请添加信任
|
|||
|
|
echo.
|
|||
|
|
echo 技术信息:
|
|||
|
|
echo • 版本: v%VERSION%
|
|||
|
|
echo • 构建日期: %DATE%
|
|||
|
|
echo • 目标框架: .NET Framework 4.5.2
|
|||
|
|
echo • 兼容系统: Windows 7 SP1+
|
|||
|
|
echo • 文件大小: 约 30-50 KB
|
|||
|
|
echo.
|
|||
|
|
echo 特点:
|
|||
|
|
echo • 🚀 启动速度快
|
|||
|
|
echo • 📦 绿色软件,无需安装
|
|||
|
|
echo • 🎯 智能文件分组
|
|||
|
|
echo • 📊 详细处理日志
|
|||
|
|
echo • 🌍 多编码支持
|
|||
|
|
echo • 💾 体积小,易分发
|
|||
|
|
) > "%RELEASE_NAME%\Windows7使用说明.txt"
|
|||
|
|
|
|||
|
|
REM 创建启动脚本
|
|||
|
|
echo 🚀 创建启动脚本...
|
|||
|
|
(
|
|||
|
|
echo @echo off
|
|||
|
|
echo title PDF书签合并工具 v%VERSION%
|
|||
|
|
echo echo 启动 PDF书签合并工具...
|
|||
|
|
echo 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.
|
|||
|
|
echo timeout /t 2 ^>nul
|
|||
|
|
) > "%RELEASE_NAME%\启动程序.bat"
|
|||
|
|
|
|||
|
|
REM 创建兼容性检查脚本
|
|||
|
|
echo 🔍 创建兼容性检查脚本...
|
|||
|
|
(
|
|||
|
|
echo @echo off
|
|||
|
|
echo title Windows 7 兼容性检查
|
|||
|
|
echo echo Windows 7 兼容性检查
|
|||
|
|
echo echo ====================
|
|||
|
|
echo echo.
|
|||
|
|
echo echo 检查操作系统版本...
|
|||
|
|
echo ver
|
|||
|
|
echo echo.
|
|||
|
|
echo echo 检查 .NET Framework...
|
|||
|
|
echo if exist "C:\Windows\Microsoft.NET\Framework64\v4.0.30319" ^(
|
|||
|
|
echo echo ✅ 找到 .NET Framework 4.x ^(64位^)
|
|||
|
|
echo ^) else ^(
|
|||
|
|
echo if exist "C:\Windows\Microsoft.NET\Framework\v4.0.30319" ^(
|
|||
|
|
echo echo ✅ 找到 .NET Framework 4.x ^(32位^)
|
|||
|
|
echo ^) else ^(
|
|||
|
|
echo echo ❌ 未找到 .NET Framework 4.x
|
|||
|
|
echo echo 请安装 .NET Framework 4.5.2
|
|||
|
|
echo echo 下载地址:https://dotnet.microsoft.com/download/dotnet-framework/net452
|
|||
|
|
echo ^)
|
|||
|
|
echo ^)
|
|||
|
|
echo echo.
|
|||
|
|
echo echo 兼容性检查完成
|
|||
|
|
echo echo 如果有❌标记,请安装 .NET Framework 4.5.2
|
|||
|
|
echo echo.
|
|||
|
|
echo pause
|
|||
|
|
) > "%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 ^(主程序,%FILE_SIZE_KB% KB^)
|
|||
|
|
echo ├─ Windows7使用说明.txt ^(用户指南^)
|
|||
|
|
echo ├─ 启动程序.bat ^(快捷启动^)
|
|||
|
|
echo └─ 兼容性检查.bat ^(环境检查^)
|
|||
|
|
echo.
|
|||
|
|
echo 🎉 Windows 7 兼容发布包创建成功!
|
|||
|
|
echo.
|
|||
|
|
echo 🔧 Windows 7 部署说明:
|
|||
|
|
echo 1. 确保目标电脑已安装 .NET Framework 4.5.2 或更高版本
|
|||
|
|
echo 2. 将整个 %RELEASE_NAME% 文件夹复制到目标电脑
|
|||
|
|
echo 3. 运行"兼容性检查.bat"确保环境正确
|
|||
|
|
echo 4. 双击"启动程序.bat"或直接运行"SlideCombine.exe"
|
|||
|
|
echo 5. 无需安装任何软件,绿色环保!
|
|||
|
|
echo.
|
|||
|
|
echo 📋 下一步:
|
|||
|
|
echo - 测试程序是否正常运行
|
|||
|
|
echo - 复制到 U 盘或上传到网络进行分发
|
|||
|
|
echo - 可以在 Windows 7 上测试兼容性
|
|||
|
|
echo.
|
|||
|
|
|
|||
|
|
REM 询问是否打开发布文件夹
|
|||
|
|
echo 是否打开发布文件夹?(Y/N)
|
|||
|
|
set /p choice=请输入选择:
|
|||
|
|
if /i "%choice%"=="Y" (
|
|||
|
|
start "" "%RELEASE_NAME%"
|
|||
|
|
echo ✅ 已打开发布文件夹
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
echo.
|
|||
|
|
echo Windows 7 兼容编译流程完成!按任意键退出...
|
|||
|
|
pause >nul
|