背景
我们在 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 包?
(您可以在项目设置/设置下找到)
我认为以下开关需要关闭,对吗?
是的。由于 feed 和 Pipeline 位于两个项目中,因此需要在 Project Settings -> Settings 中禁用选项:将作业授权范围限制为当前项目的非发布管道。
此外,当管道运行 dotnet 步骤时,它将使用构建服务帐户来访问 feed。您需要在
Azure Artifacts -> Target Feed -> Settings -> Permissions中将Contributor角色授予Build Service Account。
项目级别:项目名称构建服务(组织名称)
组织级别:项目集合构建服务(组织名称)
例如:有关更详细的信息,您可以参考以下文档: