build_and_package.bat 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. @echo off
  2. echo ====================================
  3. echo ThCardReader 自动打包脚本
  4. echo ====================================
  5. echo.
  6. :: 设置变量
  7. set PROJECT_NAME=ThCardReader
  8. set BUILD_CONFIG=Release
  9. set BUILD_PLATFORM=x86
  10. set OUTPUT_DIR=bin\%BUILD_PLATFORM%\%BUILD_CONFIG%
  11. set PACKAGE_DIR=Package_%PROJECT_NAME%_%BUILD_CONFIG%
  12. echo 1. 检查开发环境...
  13. where msbuild >nul 2>nul
  14. if %errorlevel% neq 0 (
  15. echo 错误: 未找到 MSBuild,请确保安装了 Visual Studio 或 .NET Framework SDK
  16. pause
  17. exit /b 1
  18. )
  19. echo 2. 清理旧的编译文件...
  20. msbuild %PROJECT_NAME%\%PROJECT_NAME%.csproj /t:Clean /p:Configuration=%BUILD_CONFIG% /p:Platform=%BUILD_PLATFORM% /verbosity:minimal
  21. if %errorlevel% neq 0 (
  22. echo 错误: 清理失败
  23. pause
  24. exit /b 1
  25. )
  26. echo 3. 编译项目...
  27. msbuild %PROJECT_NAME%\%PROJECT_NAME%.csproj /t:Build /p:Configuration=%BUILD_CONFIG% /p:Platform=%BUILD_PLATFORM% /verbosity:minimal
  28. if %errorlevel% neq 0 (
  29. echo 错误: 编译失败
  30. pause
  31. exit /b 1
  32. )
  33. echo 4. 创建打包目录...
  34. if exist %PACKAGE_DIR% (
  35. rmdir /s /q %PACKAGE_DIR%
  36. )
  37. mkdir %PACKAGE_DIR%
  38. echo 5. 复制核心文件...
  39. copy "%PROJECT_NAME%\%OUTPUT_DIR%\%PROJECT_NAME%.exe" "%PACKAGE_DIR%\"
  40. copy "%PROJECT_NAME%\%OUTPUT_DIR%\%PROJECT_NAME%.exe.config" "%PACKAGE_DIR%\"
  41. echo 6. 复制依赖库文件...
  42. copy "%PROJECT_NAME%\%OUTPUT_DIR%\Microsoft.Owin*.dll" "%PACKAGE_DIR%\"
  43. copy "%PROJECT_NAME%\%OUTPUT_DIR%\System.Web.Http*.dll" "%PACKAGE_DIR%\"
  44. copy "%PROJECT_NAME%\%OUTPUT_DIR%\System.Net.Http.Formatting.dll" "%PACKAGE_DIR%\"
  45. copy "%PROJECT_NAME%\%OUTPUT_DIR%\Newtonsoft.Json.dll" "%PACKAGE_DIR%\"
  46. copy "%PROJECT_NAME%\%OUTPUT_DIR%\Owin.dll" "%PACKAGE_DIR%\"
  47. copy "%PROJECT_NAME%\%OUTPUT_DIR%\System.Web.Cors.dll" "%PACKAGE_DIR%\"
  48. echo 7. 复制华视读卡器文件...
  49. if exist "%PROJECT_NAME%\%OUTPUT_DIR%\Termb.dll" (
  50. copy "%PROJECT_NAME%\%OUTPUT_DIR%\Termb.dll" "%PACKAGE_DIR%\"
  51. copy "%PROJECT_NAME%\%OUTPUT_DIR%\TSConfig.dll" "%PACKAGE_DIR%\"
  52. copy "%PROJECT_NAME%\%OUTPUT_DIR%\WltRS.dll" "%PACKAGE_DIR%\"
  53. copy "%PROJECT_NAME%\%OUTPUT_DIR%\TSW_KS.dll" "%PACKAGE_DIR%\"
  54. copy "%PROJECT_NAME%\%OUTPUT_DIR%\InputPwd.dll" "%PACKAGE_DIR%\"
  55. copy "%PROJECT_NAME%\%OUTPUT_DIR%\BmpToJpg.dll" "%PACKAGE_DIR%\"
  56. copy "%PROJECT_NAME%\%OUTPUT_DIR%\TypeA.dll" "%PACKAGE_DIR%\"
  57. copy "%PROJECT_NAME%\%OUTPUT_DIR%\UnPack.dll" "%PACKAGE_DIR%\"
  58. copy "%PROJECT_NAME%\%OUTPUT_DIR%\JpgDll.dll" "%PACKAGE_DIR%\"
  59. copy "%PROJECT_NAME%\%OUTPUT_DIR%\libcurl.dll" "%PACKAGE_DIR%\"
  60. copy "%PROJECT_NAME%\%OUTPUT_DIR%\termb.lic" "%PACKAGE_DIR%\"
  61. copy "%PROJECT_NAME%\%OUTPUT_DIR%\用前必读.TXT" "%PACKAGE_DIR%\"
  62. )
  63. echo 8. 复制江苏医保文件...
  64. if exist "%PROJECT_NAME%\%OUTPUT_DIR%\HeaSecReadInfo.dll" (
  65. copy "%PROJECT_NAME%\%OUTPUT_DIR%\HeaSecReadInfo.dll" "%PACKAGE_DIR%\"
  66. copy "%PROJECT_NAME%\%OUTPUT_DIR%\SSCardDriver*.dll" "%PACKAGE_DIR%\"
  67. copy "%PROJECT_NAME%\%OUTPUT_DIR%\SSCardPKI.dll" "%PACKAGE_DIR%\"
  68. copy "%PROJECT_NAME%\%OUTPUT_DIR%\GetInfo.dll" "%PACKAGE_DIR%\"
  69. copy "%PROJECT_NAME%\%OUTPUT_DIR%\Message.dll" "%PACKAGE_DIR%\"
  70. copy "%PROJECT_NAME%\%OUTPUT_DIR%\NeuSSCard.dll" "%PACKAGE_DIR%\"
  71. copy "%PROJECT_NAME%\%OUTPUT_DIR%\ElecEvidenceClient.dll" "%PACKAGE_DIR%\"
  72. copy "%PROJECT_NAME%\%OUTPUT_DIR%\JSGetQRCode.dll" "%PACKAGE_DIR%\"
  73. copy "%PROJECT_NAME%\%OUTPUT_DIR%\GetSFZInfoDriver_JS.dll" "%PACKAGE_DIR%\"
  74. copy "%PROJECT_NAME%\%OUTPUT_DIR%\NeuCSB.dll" "%PACKAGE_DIR%\"
  75. copy "%PROJECT_NAME%\%OUTPUT_DIR%\LNGenComp.dll" "%PACKAGE_DIR%\"
  76. copy "%PROJECT_NAME%\%OUTPUT_DIR%\libeay32.dll" "%PACKAGE_DIR%\"
  77. )
  78. echo 9. 复制配置文件...
  79. if exist "%PROJECT_NAME%\%OUTPUT_DIR%\Config.ini" (
  80. copy "%PROJECT_NAME%\%OUTPUT_DIR%\Config.ini" "%PACKAGE_DIR%\"
  81. )
  82. if exist "%PROJECT_NAME%\%OUTPUT_DIR%\HSM*.ini" (
  83. copy "%PROJECT_NAME%\%OUTPUT_DIR%\HSM*.ini" "%PACKAGE_DIR%\"
  84. )
  85. echo 10. 复制文档...
  86. copy "ThCardReader打包和部署指南.md" "%PACKAGE_DIR%\"
  87. copy "ThCardReader使用说明文档.md" "%PACKAGE_DIR%\"
  88. echo 11. 创建日志目录...
  89. mkdir "%PACKAGE_DIR%\logs"
  90. mkdir "%PACKAGE_DIR%\NEULOGS"
  91. mkdir "%PACKAGE_DIR%\TSLOG"
  92. echo 12. 创建启动脚本...
  93. echo @echo off > "%PACKAGE_DIR%\启动服务.bat"
  94. echo echo 正在启动ThCardReader服务... >> "%PACKAGE_DIR%\启动服务.bat"
  95. echo ThCardReader.exe >> "%PACKAGE_DIR%\启动服务.bat"
  96. echo 13. 创建README文件...
  97. echo ThCardReader 读卡服务 > "%PACKAGE_DIR%\README.txt"
  98. echo. >> "%PACKAGE_DIR%\README.txt"
  99. echo 功能说明: >> "%PACKAGE_DIR%\README.txt"
  100. echo 1. 华视读身份证功能 >> "%PACKAGE_DIR%\README.txt"
  101. echo 2. 江苏医保读社保卡功能 >> "%PACKAGE_DIR%\README.txt"
  102. echo. >> "%PACKAGE_DIR%\README.txt"
  103. echo 使用方法: >> "%PACKAGE_DIR%\README.txt"
  104. echo 1. 以管理员身份运行 ThCardReader.exe >> "%PACKAGE_DIR%\README.txt"
  105. echo 2. 服务启动后访问 http://localhost:8321 >> "%PACKAGE_DIR%\README.txt"
  106. echo 3. 详细说明请参考使用文档 >> "%PACKAGE_DIR%\README.txt"
  107. echo.
  108. echo ====================================
  109. echo 打包完成!
  110. echo ====================================
  111. echo 输出目录: %PACKAGE_DIR%
  112. echo 主程序: %PACKAGE_DIR%\ThCardReader.exe
  113. echo 启动脚本: %PACKAGE_DIR%\启动服务.bat
  114. echo 部署指南: %PACKAGE_DIR%\ThCardReader打包和部署指南.md
  115. echo 使用文档: %PACKAGE_DIR%\ThCardReader使用说明文档.md
  116. echo.
  117. :: 询问是否立即测试
  118. set /p test_choice=是否立即测试打包结果?(y/n):
  119. if /i "%test_choice%"=="y" (
  120. echo 正在启动测试...
  121. cd %PACKAGE_DIR%
  122. ThCardReader.exe
  123. )
  124. pause