76 lines
2.3 KiB
Bash
Executable File
76 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# 获取版本号
|
||
version=$(grep -o '<Version>[^<]*</Version>' ThreatSource/ThreatSource.csproj | sed 's/<Version>\(.*\)<\/Version>/\1/')
|
||
|
||
if [ -z "$version" ]; then
|
||
echo "Error: Could not find version number in ThreatSource.csproj"
|
||
exit 1
|
||
fi
|
||
|
||
# 创建发布目录
|
||
package_name="ThreatSource-${version}"
|
||
package_dir="publish/${package_name}"
|
||
|
||
# 清理并创建目录结构
|
||
rm -rf "publish/${package_name}"
|
||
mkdir -p "${package_dir}/lib"
|
||
mkdir -p "${package_dir}/include"
|
||
mkdir -p "${package_dir}/doc"
|
||
|
||
echo "正在编译 Release 版本..."
|
||
dotnet build ThreatSource/ThreatSource.csproj -c Release
|
||
|
||
echo "正在生成文档..."
|
||
docfx build docfx.json
|
||
./scripts/generate_pdf.sh
|
||
|
||
echo "正在复制文件..."
|
||
|
||
# 复制库文件到 lib 目录
|
||
cp ThreatSource/bin/Release/net8.0/ThreatSource.dll "${package_dir}/lib/"
|
||
cp ThreatSource/bin/Release/net8.0/ThreatSource.xml "${package_dir}/lib/"
|
||
cp ThreatSource/bin/Release/net8.0/ThreatSource.deps.json "${package_dir}/lib/"
|
||
cp ThreatSource/bin/Release/net8.0/AirTransmission.dll "${package_dir}/lib/"
|
||
cp ThreatSource/bin/Release/net8.0/AirTransmission.xml "${package_dir}/lib/"
|
||
|
||
# 复制文档到 doc 目录
|
||
cp "publish/ThreatSource-Library.pdf" "${package_dir}/doc/ThreatSource-API-Doc.pdf"
|
||
|
||
# 创建 README.txt
|
||
cat > "${package_dir}/README.txt" << EOL
|
||
威胁源仿真库 v${version}
|
||
|
||
目录结构:
|
||
lib/ 目录:
|
||
- ThreatSource.dll - .NET 主库文件
|
||
- ThreatSource.xml - .NET API 文档(用于 IDE 智能提示)
|
||
- ThreatSource.deps.json - .NET 依赖配置文件
|
||
- AirTransmission.dll - 大气传输计算库
|
||
- AirTransmission.xml - 大气传输计算库API文档文件
|
||
|
||
doc/ 目录:
|
||
- ThreatSource-API-Doc.pdf - API 文档
|
||
|
||
使用说明:
|
||
|
||
1. C#/.NET 项目:
|
||
- 将 lib 目录下的所有文件复制到项目目录
|
||
- 在 Visual Studio 中添加对 ThreatSource.dll 的引用
|
||
|
||
2. C++ 项目:
|
||
- 将 lib 目录下的所有 DLL 文件复制到程序目录
|
||
- 在 Visual Studio 中添加对 ThreatSource.dll 的引用
|
||
- 创建 C++/CLI 项目并引用 ThreatSource.dll
|
||
|
||
详细使用说明请参考 doc 目录下的 API 文档。
|
||
EOL
|
||
|
||
# 创建最终的 zip 包
|
||
cd publish
|
||
zip -r "${package_name}.zip" "${package_name}"
|
||
|
||
# 清理临时目录
|
||
rm -rf "${package_name}"
|
||
|
||
echo "打包完成:publish/${package_name}.zip" |