Azure DevOps跨集合访问NuGet包遇404,能否跨集合共享工件源?
跨Azure DevOps集合共享工件源的问题解答
核心结论
Azure DevOps Server(原TFS)支持跨集合共享工件源,你遇到的404错误是因为NuGet源地址指向了错误的集合,而非跨集合访问本身不被支持。
错误原因分析
从报错信息看,你的NuGet还原命令使用的源地址是:
http://svp042iis/tfs/Application%20Development/_packaging/XYZ_SharedPackages/nuget/v3/index.json
但XYZ_SharedPackages NuGet feed实际位于External Applications集合下,而非Application Development集合,所以该地址无法找到对应feed,返回404。
解决步骤
修正NuGet源地址
跨集合访问feed的正确地址格式为:http://{服务器地址}/tfs/{目标集合名称}/_packaging/{Feed名称}/nuget/v3/index.json对应你的场景,正确地址应为:
http://svp042iis/tfs/External%20Applications/_packaging/XYZ_SharedPackages/nuget/v3/index.json配置访问权限
确保执行NuGet还原的账号(如构建代理服务账号、管道运行账号)拥有External Applications集合下XYZ_SharedPackagesfeed的读取权限:- 进入
External Applications集合的External Applications项目 - 打开
Artifacts->XYZ_SharedPackages-> 右上角设置图标 ->Permissions - 添加目标账号并授予
Reader权限
- 进入
管道中正确配置源
在Azure DevOps管道的NuGet还原任务中:- 指定修正后的源URL
- 配置对应的凭据(可通过创建关联
External Applications集合的Azure Artifacts服务连接来管理凭据)
内容的提问来源于stack exchange,提问作者Aaron C
相关产品推荐
相关产品推荐

