【问题标题】:Azure DevOps: Can not load nuget package from feed in Azure PipelineAzure DevOps:无法从 Azure Pipeline 中的源加载 nuget 包
【发布时间】:2020-04-23 12:43:07
【问题描述】:

在我的 Azure DevOps 组织中,我有 2 个项目: 项目 1:一些工具 项目 2:我的应用程序

项目 1 的构建结果发布到项目 1 中的提要。在 VS2019 中,我可以在项目 2 的应用程序中使用该提要中的 nuget 包。 当我尝试为项目 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: ...)).

我是否缺少任何配置?

【问题讨论】:

  • 这个问题怎么样?下面的答案是否解决了您的问题,如果是,您可以接受它作为答案,这样它可以帮助遇到同样问题的其他社区成员,我们可以存档这个帖子,谢谢。如果没有,请告诉我们您是否需要进一步的帮助。

标签: azure azure-devops nuget azure-pipelines


【解决方案1】:

要在 Azure Pipelines 中使用源中的包,需要适当的构建 身份必须有权访问您的提要。默认情况下,项目 Collection Build Service 是一个贡献者。如果你改变了你的 构建以在项目范围内运行,您需要添加项目级别 根据需要建立读者或贡献者的身份。这 项目级构建标识命名如下:

[项目名称] 构建服务([组织名称])(例如 FabrikamFiber 构建服务(代码共享演示))

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

【讨论】:

    【解决方案2】:

    Azure DevOps:无法从 Azure Pipeline 中的源加载 nuget 包

    关于项目范围提要有known issue。 Microsoft 最近将新提要的默认范围级别更改为 Project 而不是 Organization。

    因此,您需要检查您的提要是项目范围提要还是组织范围提要。如果是组织范围提要,则需要检查 azure devops 登录帐户是否有权访问提要。

    如果提要是项目范围提要,您可以尝试使用vstsFeed:<yourProjectName>/<yourFeedName> 或将项目级构建标识添加为读者或贡献者。

    查看this similar thread了解更多详情。

    希望这会有所帮助。

    【讨论】:

    • 感谢您的评论。它终于奏效了,但我还必须将构建用户添加到项目中。仅授予对 Feed 的权限是不够的。
    • 哪个构建用户到哪个项目?
    • @JamesLaw 您在组织下设置的每个项目都有自己的构建用户帐户。因此,如果您在 Project Vanilla 下有一个工件,Project Chocolate 试图在其构建中使用该工件,则需要在 Vanilla Project Settings 下的 Permissions 中将 Chocolate Build Service 添加为构建管理员。谢谢乔治 H 的评论。这也让我感到困惑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多