从另一个 Azure Devops feed 访问内部 nuget 包

问题描述 投票:0回答:1

背景

我们在 Azure DevOps 顶层有两个项目:工具和应用程序。

前者适用于应该重用的通用代码。后者是针对实际生产应用的。

场景

我在工具中添加了一个名为

authorization.shared
的项目,它已作为 nuget 包发布,需要由 APPLICATIONS feed 中的解决方案使用。

nuget已经发布,可以正确引用和使用。

问题

将 nuget 的引用添加到我的应用程序后,我在应用程序管道构建的 dotnet 恢复步骤中得到以下信息:

error NU1101: Unable to find package authorization.shared. No packages exist with this id in source(s): 
C:\Program Files\dotnet\library-packs, feed-0635e925-8deb-4329-92da-a82d57dc96d4, NuGetOrg [F:\a\1\s\MyApplication.API\MyApplication.API.csproj]

F:\a\1\s\MyApplication.API\MyApplication.API.csproj : error NU1101: Unable to find package authorization.shared. 
No packages exist with this id in source(s): C:\Program Files\dotnet\library-packs, feed-0635e925-8deb-4329-92da-a82d57dc96d4, NuGetOrg

其中“feed-0635e925-8deb-4329-92da-a82d57dc96d4”是托管 nuget 包的源。

我的问题

我没有管理员权限,所以我无法自己更改权限。我必须要求改变。我已经研究了我认为需要发生的事情,但由于我无法亲自尝试,所以我想确保我要求正确的改变。

我认为以下开关需要关闭,对吗?

如果没有,或者部分没有,还需要做什么才能允许从另一个源访问我的 nuget 包?

(您可以在项目设置/设置下找到)

c# azure-devops nuget devops nuget-package
1个回答
0
投票

我认为以下开关需要关闭,对吗?

是的。由于 feed 和 Pipeline 位于两个项目中,因此需要在 Project Settings -> Settings 中禁用选项:将作业授权范围限制为当前项目的非发布管道

此外,当管道运行 dotnet 步骤时,它将使用构建服务帐户来访问 feed。

您需要在

Azure Artifacts -> Target Feed -> Settings -> Permissions中将Contributor角色授予Build Service Account

项目级别:

项目名称构建服务(组织名称)

组织级别:

项目集合构建服务(组织名称)

例如:

有关更详细的信息,您可以参考以下文档:

管理构建服务帐户权限和管道权限

© www.soinside.com 2019 - 2024. All rights reserved.