Azure DevOps:在 Azure Pipeline 中无法从 feed 加载 nuget 包

5
在我的Azure DevOps组织中,我有两个项目: 项目1:一些工具 项目2:我的应用程序
项目1的构建结果发布到项目1中的一个feed。在VS2019中,我可以使用来自该feed的nuget包在项目2中的应用程序中使用。
但是,当我尝试为项目2设置管道时,我无法加载项目1中的包。
我的管道如下:
steps:
- task: NuGetAuthenticate@0
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
  inputs:
    command: 'restore'
    restoreSolution: '**/*.sln'
    feedsToUse: 'select'
    vstsFeed: ***FEED_ID***
- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'


Nuget恢复失败并出现以下错误:
##[error]The nuget command failed with exit code(1) and error(Unable to load the service index for source https://***organization***.pkgs.visualstudio.com/***FEED_ID***/_packaging/***PACKAGE_ID***/nuget/v3/index.json.
  Response status code does not indicate success: 404 (Not Found - VS800075: The project with id 'vstfs:///Classification/TeamProject/FEED_ID' does not exist, or you do not have permission to access it. (DevOps Activity ID: ...)).

我是否漏掉了任何配置?

2个回答

3
为了在Azure Pipelines中使用feed中的packages,适当的构建标识必须具有对您的feed的权限。默认情况下,项目集合构建服务是Contributor。如果您已更改构建以在项目范围内运行,则需要根据需要将项目级构建标识添加为Reader或Contributor。项目级构建标识命名如下: [项目名称]构建服务([组织名称])(例如FabrikamFiber构建服务(codesharing-demo))。

https://learn.microsoft.com/en-us/azure/devops/artifacts/feeds/feed-permissions?view=azure-devops#package-permissions-in-azure-pipelines


3
Azure DevOps:无法从Azure管道中的源加载NuGet包。
关于项目范围源存在已知问题。最近,Microsoft将新源的默认作用域级别更改为项目而不是组织。
因此,您需要检查您的源是项目范围源还是组织范围源。如果它是组织范围源,则需要检查Azure DevOps登录帐户是否具有访问该源的权限。

enter image description here

如果这个 feed 是项目范围的,你可以尝试使用 vstsFeed:<yourProjectName>/<yourFeedName> 或将项目级别的构建身份添加为 Reader 或 Contributor。
请查看 this similar thread 以获取更多细节。
希望这能帮到你。

5
感谢您的评论。最终它起作用了,但我还必须将构建用户添加到项目中。仅在feed上授予权限是不够的。 - Georg H.
哪个构建用户属于哪个项目? - James Law
5
@JamesLaw,你的组织下每个设置好的项目都有自己的“构建用户”账户。因此,如果在香草项目中有一个工件(artifact),巧克力项目想在其中一个编译中使用它,你需要在香草项目设置的权限下添加巧克力构建服务作为“构建管理员”。感谢Georg H的评论,这也帮助了我解决问题。 - Joe de la Forms

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接