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

Azure DevOps跨项目使用PRG项目NuGet包时Pipeline报404错误求助

解决Azure DevOps Pipeline中NU1301(404)错误的方案

核对NuGet.config的源URL准确性

  • 确认NuGet.config里PRG项目NuGet源的URL是完整的项目级路径,格式应为https://pkgs.dev.azure.com/{组织名}/{PRG项目名}/_packaging/{源名称}/nuget/v3/index.json,不少情况会遗漏项目名部分,导致指向组织级源而非目标项目源,触发404错误。
  • 直接在浏览器访问该URL,验证是否能正常加载索引页面,排除URL本身的错误。

验证Pipeline运行身份的权限

  • Pipeline默认使用项目构建服务账号(格式:{组织名}\{目标项目名} Build Service ({组织名})),而非普通用户账号,需给这个账号在PRG项目的NuGet源中添加读取权限:
    1. 进入PRG项目的「工件」页面,找到对应NuGet源
    2. 点击源右上角的设置图标,进入权限管理界面
    3. 添加目标项目的构建服务账号,授予「读取」权限
  • 若使用自托管代理,还要确认代理机器的服务账号能正常访问该源。

检查Pipeline对NuGet.config的加载逻辑

  • 确保Pipeline任务(如NuGet Restore或DotNet Restore)明确指定NuGet.config路径,比如在DotNet Restore任务中设置--configfile $(Build.SourcesDirectory)/NuGet.config,避免默认使用系统或代理级配置文件。
  • 若NuGet.config包含多个源,建议添加<clear />标签清除默认源,避免冲突:
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <packageSources>
        <clear />
        <add key="PRG-NuGet-Source" value="https://pkgs.dev.azure.com/xxx/PRG/_packaging/xxx/nuget/v3/index.json" />
        <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
      </packageSources>
    </configuration>
    

排查网络与代理限制

  • 若使用自托管代理,确认代理机器能正常访问Azure DevOps工件源URL,无防火墙或代理服务器拦截。可在代理机器上手动执行dotnet restore命令,测试能否拉取包。
  • 托管代理一般无需额外设置,但需确认组织防火墙规则允许托管代理访问工件源域名。

检查NuGet源的可见性设置

  • 进入PRG项目的NuGet源设置,确认源的可见性为「组织可见」;若设为「项目可见」,其他项目的服务账号无法访问,需修改为组织可见,或添加目标项目的服务账号到权限列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 09:12:09