#!/bin/bash # 版本号 VERSION="1.2.0" PACKAGE_NAME="AirTransmissionLibrary-${VERSION}" # 创建临时目录和发布目录 rm -rf temp publish mkdir -p temp/${PACKAGE_NAME}/{lib,include,doc} mkdir -p publish # 编译项目 echo "Building project..." dotnet build src/AirTransmission/AirTransmission.csproj -c Release # 复制必要文件 echo "Copying files..." cp src/AirTransmission/bin/Release/net8.0/AirTransmission.dll temp/${PACKAGE_NAME}/lib/ cp src/AirTransmission/bin/Release/net8.0/AirTransmission.xml temp/${PACKAGE_NAME}/lib/ cp include/AirTransmission.h temp/${PACKAGE_NAME}/include/ # 生成文档 echo "Generating documentation..." docfx metadata docfx.json docfx build docfx.json wkhtmltopdf --enable-local-file-access \ --page-size A4 \ --margin-top 20 \ --margin-bottom 20 \ --margin-left 20 \ --margin-right 20 \ --footer-left "大气传输计算库 API 文档" \ --footer-right "[page]/[topage]" \ --footer-spacing 8 \ --user-style-sheet docs/custom.css \ _site/docs/introduction.html \ _site/docs/API.html \ _site/api/AirTransmission.AtmosphericTransmittanceCalculator.html \ _site/api/AirTransmission.WeatherCondition.html \ _site/api/AirTransmission.WeatherType.html \ _site/docs/usage_examples.html \ temp/${PACKAGE_NAME}/doc/AirTransmission-API-Doc.pdf # 创建 README cat > temp/${PACKAGE_NAME}/README.txt << EOL 大气传输计算库 v${VERSION} 目录结构: lib/ - 库文件 AirTransmission.dll - 主库文件 AirTransmission.xml - API 文档(用于 IDE 智能提示) include/ - 头文件 AirTransmission.h - C++ 头文件 doc/ - 文档 AirTransmission-API-Doc.pdf - API 文档 使用说明请参考 doc/AirTransmission-API-Doc.pdf EOL # 打包 echo "Creating package..." cd temp zip -r ../publish/${PACKAGE_NAME}.zip ${PACKAGE_NAME} cd .. # 清理临时文件 echo "Cleaning up..." rm -rf temp echo "Package created at publish/${PACKAGE_NAME}.zip"