You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用GitHub Actions生成NuGet包:是否需拆分类库项目仓库?

无需拆分仓库,直接为同一解决方案中的类库生成NuGet包

不需要将类库项目拆分到独立解决方案或GitHub仓库,你完全可以在现有包含ASP.NET Core API和类库的同一仓库中,通过GitHub Actions仅为类库项目生成并发布NuGet包。

类库项目配置要点

确保你的类库项目.csproj文件包含NuGet包所需的元数据,示例配置如下:

<PropertyGroup>
  <TargetFramework>net6.0</TargetFramework> <!-- 匹配你的目标框架版本 -->
  <PackageId>Your.Custom.Library</PackageId>
  <Version>1.0.0</Version>
  <Authors>Your Team</Authors>
  <Description>用于XXX场景的工具类库</Description>
  <GeneratePackageOnBuild>false</GeneratePackageOnBuild> <!-- 关闭自动打包,由CI流程控制 -->
</PropertyGroup>

GitHub Actions工作流示例

在仓库的.github/workflows目录下创建nuget-build.yml文件,以下是仅构建、打包类库的工作流:

name: Build Class Library NuGet Package

on:
  push:
    branches: [ main ]
  release:
    types: [ published ]

jobs:
  pack-library:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Setup .NET SDK
        uses: actions/setup-dotnet@v4
        with:
          dotnet-version: '6.0.x'

      - name: Restore dependencies
        run: dotnet restore ./src/YourLibraryProject/YourLibraryProject.csproj

      - name: Build library
        run: dotnet build ./src/YourLibraryProject/YourLibraryProject.csproj --configuration Release --no-restore

      - name: Generate NuGet package
        run: dotnet pack ./src/YourLibraryProject/YourLibraryProject.csproj --configuration Release --no-build --output ./nupkg-output

      # 可选:仅在发布GitHub Release时推送包到NuGet源
      - name: Publish to NuGet
        if: github.event_name == 'release'
        run: dotnet nuget push ./nupkg-output/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json

关键说明

  • 工作流中通过指定类库项目的具体路径,避免构建整个解决方案,确保仅处理目标类库。
  • 若有多个类库需要打包,可重复dotnet pack步骤,或用空格分隔多个项目路径一次性打包。
  • 版本号可通过GitHub Release标签动态传递,比如将Version设为${{ github.ref_name }},实现标签与包版本同步。

内容的提问来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 14:20:39