0

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

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

可用的 NuGet 源

我尝试使用命令从命令提示符恢复Newtonsoft.Json NuGet 包nuget restore。NuGet 客户端将尝试从我的自定义 NuGet 源中检索 Newtonsoft.Json NuGet 包,该源不包含 Newtonsoft.Json 包并在输出中返回 NotFound 消息:

未找到错误

但是,该软件包已完美恢复,没有问题。但是为什么包管理器搜索所有配置的源并打印未找到的错误,即使它在第一个 NuGet 源中找到它?

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

4

1 回答 1

3

不,这不是错误。

当 NuGet 客户端正在执行还原并看到您依赖于某个包时,它无法知道该包存在于哪个提要中。过去,NuGet 客户端会按顺序查询每个源,但有时它已更改为同时查询所有源并使用第一个成功响应。

在某些情况下,您可能希望从 nuget.org 以外的来源获取 nuget.org 上可用的包。一个示例是,您可能在与构建服务器相同的网络上拥有一个包含常用包的私有源,这样包还原就可以尽可能快,并且对网络中断更具弹性。

于 2018-04-02T07:36:16.007 回答