@echo off setlocal enabledelayedexpansion set VERSION=1.0.0 set CONFIGURATION=Release set OUTPUT_DIR=%~dp0\nupkgs set API_KEY=your-nuget-api-key REM 创建输出目录 if not exist "%OUTPUT_DIR%" mkdir "%OUTPUT_DIR%" REM 清理 echo 清理解决方案... dotnet clean JiShe.CollectBus.sln -c %CONFIGURATION% REM 删除之前的包 echo 删除之前的包... if exist "%OUTPUT_DIR%\*.nupkg" del /q "%OUTPUT_DIR%\*.nupkg" REM 打包项目 echo 开始打包项目... REM 打包 Protocol 项目 echo 打包 Protocol 项目... call :PackProject protocols\JiShe.CollectBus.Protocol\JiShe.CollectBus.Protocol.csproj call :PackProject protocols\JiShe.CollectBus.Protocol.Contracts\JiShe.CollectBus.Protocol.Contracts.csproj call :PackProject protocols\JiShe.CollectBus.Protocol.T1882018\JiShe.CollectBus.Protocol.T1882018.csproj call :PackProject protocols\JiShe.CollectBus.Protocol.T37612012\JiShe.CollectBus.Protocol.T37612012.csproj call :PackProject protocols\JiShe.CollectBus.Protocol.T6452007\JiShe.CollectBus.Protocol.T6452007.csproj REM 打包 Modules 项目 echo 打包 Modules 项目... call :PackProject modules\JiShe.CollectBus.FreeRedis\JiShe.CollectBus.FreeRedis.csproj call :PackProject modules\JiShe.CollectBus.Kafka\JiShe.CollectBus.Kafka.csproj call :PackProject modules\JiShe.CollectBus.IoTDB\JiShe.CollectBus.IoTDB.csproj call :PackProject modules\JiShe.CollectBus.MongoDB\JiShe.CollectBus.MongoDB.csproj call :PackProject modules\JiShe.CollectBus.FreeSql\JiShe.CollectBus.FreeSql.csproj call :PackProject modules\JiShe.CollectBus.Cassandra\JiShe.CollectBus.Cassandra.csproj call :PackProject modules\JiShe.CollectBusMultiProcessing\JiShe.CollectBusMultiProcessing.csproj REM 打包 Shared 项目 echo 打包 Shared 项目... call :PackProject shared\JiShe.CollectBus.Common\JiShe.CollectBus.Common.csproj call :PackProject shared\JiShe.CollectBus.Domain.Shared\JiShe.CollectBus.Domain.Shared.csproj REM 打包 Services 项目 echo 打包 Services 项目... call :PackProject services\JiShe.CollectBus.Domain\JiShe.CollectBus.Domain.csproj call :PackProject services\JiShe.CollectBus.Application.Contracts\JiShe.CollectBus.Application.Contracts.csproj call :PackProject services\JiShe.CollectBus.Application\JiShe.CollectBus.Application.csproj call :PackProject services\JiShe.CollectBus.EntityFrameworkCore\JiShe.CollectBus.EntityFrameworkCore.csproj echo. echo 是否要发布包到 NuGet? (Y/N) set /p PUBLISH_CHOICE= if /i "%PUBLISH_CHOICE%"=="Y" ( echo 开始发布包... for %%f in ("%OUTPUT_DIR%\*.nupkg") do ( echo 发布: %%f dotnet nuget push "%%f" --api-key %API_KEY% --source https://api.nuget.org/v3/index.json --skip-duplicate ) echo 所有包已发布完成! ) else ( echo 跳过发布操作。所有包都在 %OUTPUT_DIR% 目录中。 ) goto :eof :PackProject if exist "%~1" ( echo 打包: %~1 dotnet pack "%~1" -c %CONFIGURATION% --no-build --include-symbols -p:SymbolPackageFormat=snupkg -p:PackageVersion=%VERSION% -o "%OUTPUT_DIR%" ) else ( echo 警告: 项目不存在 - %~1 ) goto :eof