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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NuGet包尝试在所有已配置的NuGet源中检索相关的知识,希望对你有一定的参考价值。

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

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

以上是关于NuGet包尝试在所有已配置的NuGet源中检索的主要内容,如果未能解决你的问题,请参考以下文章

AzureDevops 静态网站未从私有源中找到 NuGet 包

找不到包裹***。源中不存在具有此 ID 的包:“Local Nuget”、Microsoft Visual Studio 脱机包、nuget.org

Nuget 包“此源中不可用”......但 VS 仍然知道它吗?

如何列出所有已安装的 NuGet 包?

Nuget表示缺少软件包,Package Manager Restore表示已安装所有软件包

Visual Studio 编译错误 - 计算机中缺少 nuget 包,但 nuget restore 说所有包都已安装?