@echo off echo ==================================== echo ThCardReader 自动打包脚本 echo ==================================== echo. :: 设置变量 set PROJECT_NAME=ThCardReader set BUILD_CONFIG=Release set BUILD_PLATFORM=x86 set OUTPUT_DIR=bin\%BUILD_PLATFORM%\%BUILD_CONFIG% set PACKAGE_DIR=Package_%PROJECT_NAME%_%BUILD_CONFIG% echo 1. 检查开发环境... where msbuild >nul 2>nul if %errorlevel% neq 0 ( echo 错误: 未找到 MSBuild,请确保安装了 Visual Studio 或 .NET Framework SDK pause exit /b 1 ) echo 2. 清理旧的编译文件... msbuild %PROJECT_NAME%\%PROJECT_NAME%.csproj /t:Clean /p:Configuration=%BUILD_CONFIG% /p:Platform=%BUILD_PLATFORM% /verbosity:minimal if %errorlevel% neq 0 ( echo 错误: 清理失败 pause exit /b 1 ) echo 3. 编译项目... msbuild %PROJECT_NAME%\%PROJECT_NAME%.csproj /t:Build /p:Configuration=%BUILD_CONFIG% /p:Platform=%BUILD_PLATFORM% /verbosity:minimal if %errorlevel% neq 0 ( echo 错误: 编译失败 pause exit /b 1 ) echo 4. 创建打包目录... if exist %PACKAGE_DIR% ( rmdir /s /q %PACKAGE_DIR% ) mkdir %PACKAGE_DIR% echo 5. 复制核心文件... copy "%PROJECT_NAME%\%OUTPUT_DIR%\%PROJECT_NAME%.exe" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\%PROJECT_NAME%.exe.config" "%PACKAGE_DIR%\" echo 6. 复制依赖库文件... copy "%PROJECT_NAME%\%OUTPUT_DIR%\Microsoft.Owin*.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\System.Web.Http*.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\System.Net.Http.Formatting.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\Newtonsoft.Json.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\Owin.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\System.Web.Cors.dll" "%PACKAGE_DIR%\" echo 7. 复制华视读卡器文件... if exist "%PROJECT_NAME%\%OUTPUT_DIR%\Termb.dll" ( copy "%PROJECT_NAME%\%OUTPUT_DIR%\Termb.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\TSConfig.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\WltRS.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\TSW_KS.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\InputPwd.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\BmpToJpg.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\TypeA.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\UnPack.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\JpgDll.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\libcurl.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\termb.lic" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\用前必读.TXT" "%PACKAGE_DIR%\" ) echo 8. 复制江苏医保文件... if exist "%PROJECT_NAME%\%OUTPUT_DIR%\HeaSecReadInfo.dll" ( copy "%PROJECT_NAME%\%OUTPUT_DIR%\HeaSecReadInfo.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\SSCardDriver*.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\SSCardPKI.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\GetInfo.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\Message.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\NeuSSCard.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\ElecEvidenceClient.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\JSGetQRCode.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\GetSFZInfoDriver_JS.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\NeuCSB.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\LNGenComp.dll" "%PACKAGE_DIR%\" copy "%PROJECT_NAME%\%OUTPUT_DIR%\libeay32.dll" "%PACKAGE_DIR%\" ) echo 9. 复制配置文件... if exist "%PROJECT_NAME%\%OUTPUT_DIR%\Config.ini" ( copy "%PROJECT_NAME%\%OUTPUT_DIR%\Config.ini" "%PACKAGE_DIR%\" ) if exist "%PROJECT_NAME%\%OUTPUT_DIR%\HSM*.ini" ( copy "%PROJECT_NAME%\%OUTPUT_DIR%\HSM*.ini" "%PACKAGE_DIR%\" ) echo 10. 复制文档... copy "ThCardReader打包和部署指南.md" "%PACKAGE_DIR%\" copy "ThCardReader使用说明文档.md" "%PACKAGE_DIR%\" echo 11. 创建日志目录... mkdir "%PACKAGE_DIR%\logs" mkdir "%PACKAGE_DIR%\NEULOGS" mkdir "%PACKAGE_DIR%\TSLOG" echo 12. 创建启动脚本... echo @echo off > "%PACKAGE_DIR%\启动服务.bat" echo echo 正在启动ThCardReader服务... >> "%PACKAGE_DIR%\启动服务.bat" echo ThCardReader.exe >> "%PACKAGE_DIR%\启动服务.bat" echo 13. 创建README文件... echo ThCardReader 读卡服务 > "%PACKAGE_DIR%\README.txt" echo. >> "%PACKAGE_DIR%\README.txt" echo 功能说明: >> "%PACKAGE_DIR%\README.txt" echo 1. 华视读身份证功能 >> "%PACKAGE_DIR%\README.txt" echo 2. 江苏医保读社保卡功能 >> "%PACKAGE_DIR%\README.txt" echo. >> "%PACKAGE_DIR%\README.txt" echo 使用方法: >> "%PACKAGE_DIR%\README.txt" echo 1. 以管理员身份运行 ThCardReader.exe >> "%PACKAGE_DIR%\README.txt" echo 2. 服务启动后访问 http://localhost:8321 >> "%PACKAGE_DIR%\README.txt" echo 3. 详细说明请参考使用文档 >> "%PACKAGE_DIR%\README.txt" echo. echo ==================================== echo 打包完成! echo ==================================== echo 输出目录: %PACKAGE_DIR% echo 主程序: %PACKAGE_DIR%\ThCardReader.exe echo 启动脚本: %PACKAGE_DIR%\启动服务.bat echo 部署指南: %PACKAGE_DIR%\ThCardReader打包和部署指南.md echo 使用文档: %PACKAGE_DIR%\ThCardReader使用说明文档.md echo. :: 询问是否立即测试 set /p test_choice=是否立即测试打包结果?(y/n): if /i "%test_choice%"=="y" ( echo 正在启动测试... cd %PACKAGE_DIR% ThCardReader.exe ) pause