跨项目下载工件时遭遇VS800075错误求助
问题场景
训练环境中有两个项目:项目A存储待使用的工件,项目B通过部署组执行构建。运行发布管道时触发以下错误:
Failed in getBuild with error: Error: VS800075: The project with id 'vstfs:///Classification/TeamProject/0f8301ca-c8a9-4e51-bf35-73bd978f8d8d' does not exist, or you do not have permission to access it.
at RestClient. (C:\azagent\A2_work_tasks\DownloadBuildArtifacts_a433f589-fce1-4460-9ee6-44a624aeb1fb\0.236.1\node_modules\typed-rest-client\RestClient.js:202:31)
at Generator.next ()
at fulfilled (C:\azagent\A2_work_tasks\DownloadBuildArtifacts_a433f589-fce1-4460-9ee6-44a624aeb1fb\0.236.1\node_modules\typed-rest-client\RestClient.js:6:58)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) { statusCode: 400,
result: [Object], responseHeaders: [Object] } Error: VS800075: The project with id 'vstfs:///Classification/TeamProject/0f8301ca-c8a9-4e51-bf35-73bd978f8d8d' does not exist, or you do not have permission to access it.
已尝试操作:
- 将唯一用户添加到项目A和B的Build Administrator组
- 重建项目、部署组
问题仍未解决。
排查与解决步骤
- 验证服务连接权限:检查发布管道中访问项目A工件的服务连接身份(服务主体/托管标识等),确保其拥有项目A的读取工件权限。Build Administrator权限侧重构建管理,未必覆盖跨项目工件读取权限。
- 核对工件源配置:检查
DownloadBuildArtifacts任务中的工件源项目ID/名称是否正确,避免复制或拼写错误导致系统无法定位目标项目。 - 确认代理账户权限:若使用自托管代理,需将代理运行的服务账户添加到项目A的Project Readers组,确保它能读取项目内的工件资源。
- 检查项目可见性:确认项目A的可见性配置(是否为私有项目),同时验证当前身份的项目访问权限是否已生效。
- 使用组织级权限组:将相关身份添加到组织级的Project Collection Build Administrators组,该组拥有跨项目的构建与工件访问权限,可解决跨项目权限隔离问题。
内容的提问来源于stack exchange,提问作者silvathiago25

