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

如何解决Azure Pipeline发布Azure Artifact的403权限问题?

解决Azure Pipeline发布NuGet包到Azure Artifacts时的403权限问题

针对你遇到的403 Forbidden - User 'GUID3' lacks permission to complete this action. You need to have 'AddPackage'错误,以下是几个关键修复方向:

1. 确认并授权Pipeline使用的服务账户

Pipeline运行时使用的是服务主体账户(而非你个人的账户),你需要给这个账户分配Feed的AddPackage权限:

  • 打开Azure DevOps,进入目标Feed的页面,点击右上角的「设置」图标
  • 切换到「权限」标签页,点击「添加用户/组」
  • 搜索并添加以下账户之一:
    • 项目级Pipeline:[你的项目名] Build Service ([你的组织名])
    • 组织级Pipeline:Project Collection Build Service ([你的组织名])
  • 给该账户分配「贡献者(Contributor)」角色(该角色包含AddPackage权限),或者直接勾选AddPackage权限

2. 检查Pipeline的Feed访问权限

  • 打开Pipeline编辑页面,点击右上角的「...」→「管道权限」
  • 在「资源权限」下找到目标Azure Artifacts Feed,确认状态为「允许访问」,如果是拒绝状态,点击「更改权限」设置为允许

3. 替换NuGetCommand@2为DotNetCoreCLI@2推送包

部分场景下,NuGetCommand@2的权限处理存在兼容性问题,改用DotNetCoreCLI@2的push命令可以解决:

# 替换原有的NuGetCommand@2步骤
- task: DotNetCoreCLI@2
  condition: and(succeeded(), ne(variables['Version'], ''), ne(variables['Version'], 'undefined'))
  displayName: 'Publishing package'
  inputs:
    command: 'push'
    packagesToPush: '$(Build.ArtifactStagingDirectory)/**/*.nupkg;!$(Build.ArtifactStagingDirectory)/**/*.symbols.nupkg'
    nuGetFeedType: 'internal'
    publishVstsFeed: '8c97****-****-****-****-********4bdd/1366****-****-****-****-********6d5d'

4. 检查是否重复推送同一版本包

如果错误中的版本(比如0.0.2)已经存在于Feed中,Azure Artifacts会拒绝重复推送,此时需要:

  • 删除Feed中已存在的同版本包,或者
  • 使用新的版本号重新触发Pipeline

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 14:15:55