70 lines
1.9 KiB
Bash
Executable File
70 lines
1.9 KiB
Bash
Executable File
#!/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" |