# Release-NuGet Action 一个用于自动发布 NuGet 包到指定源的 GitHub Action。 ## 功能特性 - 支持发布多个项目到指定的 NuGet 源 - 可配置 .NET SDK 版本 - 支持自定义构建配置 - 提供预发布版本控制选项 - 包含详细的日志输出 - 自动跳过重复发布 - 错误处理和项目检查 ## 输入参数 | 参数 | 必需 | 默认值 | 描述 | |------|------|--------|------| | `source` | 是 | - | NuGet 包发布地址 | | `key` | 是 | - | NuGet 发布凭证密钥 | | `projects` | 是 | - | 要发布的项目名称列表,使用逗号分隔 | | `nuget_dir` | 否 | `nuget` | NuGet 包缓存目录,用于缓存依赖 | | `dotnet_version` | 否 | `6.0` | .NET SDK 版本 | ## 使用示例 ### 基本用法 ```yaml name: 发布 NuGet 包 on: push: tags: - 'v*.*.*' jobs: publish: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: 发布到 NuGet.org uses: actions/release-nuget@6.0 with: source: https://api.nuget.org/v3/index.json key: ${{ secrets.NUGET_API_KEY }} projects: MyProject,MyLibrary ``` ### 高级用法 ```yaml name: 发布 NuGet 包 on: push: tags: - 'v*.*.*' jobs: publish: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: 发布到私有 NuGet 源 uses: actions/release-nuget@6.0 with: source: https://myget.org/F/my-feed/v3/index.json key: ${{ secrets.MYGET_API_KEY }} projects: MyProject nuget_dir: .nuget ``` ## 注意事项 1. 请确保在 GitHub Secrets 中安全存储您的 NuGet API 密钥 2. 项目路径应该相对于工作区根目录 3. 对于预发布版本,请设置 `allow_prerelease: true` 4. 支持的 .NET SDK 版本取决于 Docker Hub 上可用的 `mcr.microsoft.com/dotnet/sdk` 镜像版本 ## 故障排除 - 确保项目文件路径正确 - 检查 NuGet API 密钥是否有效 - 验证 NuGet 源地址是否可访问 - 查看日志输出以获取详细的错误信息