首页 > 解决方案 > Visual Studio Online Build - nuget restore 在一个代理上工作,在另一个代理上失败

问题描述

我有两个构建服务器,在 Visual Studio Online 中注册为代理。

他们都构建了除了一个解决方案之外的所有东西。

我有一个带有 dotnet core2 代码的 git repo,它引用了私有 nuget 提要中的一些 nuget 包。已确认私有 nuget 提要可在两台服务器上运行。

一台服务器以交互模式运行(服务器 a),另一台作为服务运行(服务器 b)。

服务器 a - 一切正常。服务器 b - 构建总是失败并出现以下错误:

错误 NU1101:无法找到包。源中不存在具有此 ID 的包:Microsoft Visual Studio Offline Packages, nuget.org [C:\Agent_work\13\s\MyProject\MyProject.APIWeb.Tests\MyProject.APIWeb.Tests.csproj]

对于使用所述 nuget 包的解决方案中的每个项目,我都会遇到同样的错误。

问:我在这里缺少什么?为什么它试图从一台服务器上的本地缓存恢复,而不是另一台服务器?有没有一种配置,我需要做?

标签: azure-devopsazure-pipelines

解决方案


根据构建日志,它指定从 nuget.org 下载包。

由于您的项目从您自己的私有源中引用了包,因此您需要在 NuGet 还原任务中指定私有源。

在 NuGet 还原任务中,您可以指定您的私人订阅源,如下所示:

在我的 NuGet.config 选项中选择Feeds,您可以指定包含带有凭据的私有 Feed 的 nuget.config 文件,或者您可以将私有 Feed 添加为端点,如下所示:

新建 -> 基本身份验证 -> 输入提要 URL 和凭据 -> 确定。

然后您可以从下拉列表中选择私人提要。

在此处输入图像描述


推荐阅读