NuGet包尝试在所有已配置的NuGet源中检索

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

在NuGet软件包管理器中安装NuGet软件包并在VS2017中配置多个NuGet软件包源时,NuGet客户端尝试在所有已配置的NuGet源中检索软件包并返回“未找到”消息。

例如:

我在NuGet.Config中配置了以下NuGet源代码,

Available NuGet sources

我试图通过使用“nuget restore”命令从命令提示符恢复Newtonsoft.Json NuGet包。 NuGet客户端将尝试从我的自定义NuGet源中检索Newtonsoft.Json NuGet包,该源不包含Newtonsoft.Json NuGet包,并在输出中返回NotFound NuGet包消息。请检查以下日志,

https://drive.google.com/open?id=0BzTG_S7tpcnoTVBKSGRQUVBsTzQ

Not found error

然而,包装完美地恢复没有问题。但是为什么包搜索所有已配置的源并且打印未找到错误,即使它在第一个NuGet源中找到也是如此。

我的问题是,

为什么NuGet客户端尝试在所有配置源中检索?这是NuGet的错误吗?我使用过Visual Studio 2017(15.4)和NuGet包管理器(4.4.0)。

有人建议解决这个问题。

提前致谢,

nuget nuget-package-restore nuget-server nugetgallery
1个回答
1
投票

编辑:我最近了解到我原来的回复中的一些细节是不正确的。我在下面编辑了我的答案,虽然基本答案是一样的。

不,这不是一个错误。

当NuGet客户端进行恢复并看到您对某个软件包有依赖关系时,它无法知道软件包所在的哪个Feed。过去,NuGet客户端会按顺序查询每个源,但在某些时候它已更改为同时查询所有源并使用第一个成功响应。

还有一些场景,您可能希望从nuget.org以外的来源获取nuget.org上提供的包。例如,您可能在构建服务器所在的网络上有一个包含常用软件包的私有源,因此软件包还原速度尽可能快,并且对网络中断更具弹性。

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