SlideCombine/build_win7.bat

333 lines
12 KiB
Batchfile
Raw Normal View History

@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 兼容版本...
echo 检查VS 2022兼容性项目文件...
if exist "SlideCombine_VS2022.csproj" (
echo ✅ 使用VS 2022兼容项目文件
"%MSBUILD_PATH%" SlideCombine_VS2022.csproj /t:Build /p:Configuration=Release /p:Platform="AnyCPU" /v:minimal
) else (
echo ✅ 使用传统项目文件
"%MSBUILD_PATH%" SlideCombine.csproj /t:Build /p:Configuration=Release /p:Platform="AnyCPU" /v:minimal /p:TargetFrameworkVersion=v4.0
)
if %ERRORLEVEL% neq 0 (
echo ❌ 编译失败!
echo 请检查代码中的错误
echo.
echo 常见问题:
echo 1. 确保已安装 .NET Framework 4.0 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