在NuGet软件包管理器中安装NuGet软件包并在VS2017中配置了多个NuGet软件包源时,NuGet客户端尝试在所有已配置的NuGet源中检索软件包,并返回“未找到”消息。
例如:
我在NuGet.Config中配置了以下NuGet源,
我尝试使用“nuget restore”命令从命令提示符恢复 Newtonsoft.Json NuGet包。 NuGet客户端将尝试从我的自定义NuGet源中检索Newtonsoft.Json NuGet包,该源不包含Newtonsoft.Json NuGet包,并在输出中返回NotFound NuGet包消息。请查看以下日志
https://drive.google.com/open?id=0BzTG_S7tpcnoTVBKSGRQUVBsTzQ
然而,包装完美无缺地恢复。但是为什么包搜索所有已配置的源并且打印未找到错误,即使它在第一个NuGet源中找到也是如此。
我的问题是,
为什么NuGet客户端会尝试在所有配置源中检索? 这是NuGet的错误吗?我使用过Visual Studio 2017(15.4)和NuGet包管理器(4.4.0)。
任何人都建议解决此问题。
提前致谢,
答案 0 :(得分:1)
不,这不是一个错误。
当NuGet客户端进行恢复并看到您对某个软件包有依赖关系时,它无法知道软件包所在的哪个Feed。过去,NuGet客户端会按顺序查询每个源,但是某些时候,它被更改为同时查询所有源并使用第一个成功的响应。
在一些情况下,您可能希望从nuget.org以外的来源获取nuget.org上提供的软件包。例如,您可能在构建服务器所在的网络上有一个包含常用软件包的私有源,因此软件包还原速度尽可能快,并且对网络中断更具弹性。