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

如何将指定项目作为NuGet包发布到Azure DevOps Artifacts?

可行解决方案

给你两种精准控制发布范围的方案,其中第二种完全符合你“修改项目设置、流水线通用”的需求:

方案一:在流水线打包阶段指定目标项目

直接在Pack任务里明确写出要打包的两个项目路径,这样只会生成这两个项目的NuGet包,后续Push自然只推送这些包。

修改后的Pack任务代码:

- task: DotNetCoreCLI@2
  displayName: '打包指定项目'
  inputs:
    command: pack
    # 替换成你实际要发布的两个项目路径
    projects: |
      **/TargetProject1.csproj
      **/TargetProject2.csproj
    versioningScheme: byBuildNumber

方案二:通过项目属性控制(推荐,保持流水线通用)

这种方法不需要改动流水线,只需要在目标项目的.csproj文件中配置生成NuGet包,其他项目默认不生成,流水线可以直接复用在其他解决方案上。

  1. 打开要发布的两个项目的.csproj文件,添加以下配置:
<PropertyGroup>
  <!-- 开启构建时自动生成NuGet包 -->
  <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
  <!-- 可选:自定义包的ID和版本,也可以留空让流水线自动生成 -->
  <PackageId>YourProjectId</PackageId>
  <Version>$(Build.BuildNumber)</Version>
</PropertyGroup>
  1. 对于不需要发布的项目,确保.csproj里要么没有GeneratePackageOnBuild,要么设置为false:
<PropertyGroup>
  <GeneratePackageOnBuild>false</GeneratePackageOnBuild>
</PropertyGroup>
  1. 流水线的Pack任务保持通用即可,它会自动识别配置了GeneratePackageOnBuild=true的项目:
- task: DotNetCoreCLI@2
  displayName: '打包自动识别目标项目'
  inputs:
    command: pack
    versioningScheme: byBuildNumber
    arguments: '--include-symbols --include-source'

后续如果要新增发布项目,只需要修改对应项目的.csproj配置,完全不用动流水线,完美满足通用性需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 22:55:23