ChatGPT解决这个技术问题 Extra ChatGPT

使用 NuGet 包管理器控制台时源无法访问

我们正在将包管理从手动更新文件转移到 NuGet。我正在尝试安装旧版本的软件包以匹配我们在源代码管理中已有的软件包。无法从 UI 中执行此操作,因此我使用命令行来获取正确的版本。

出于某种原因,Install-Package 不断告诉我 nuget 库无法访问。

nuget.org [https://www.nuget.org/api/v2/] 的源无法访问。回退到 NuGet 本地缓存

这只发生在我们的一种解决方案中。如果我在同一个存储库中创建一个新解决方案或使用另一个解决方案,包将按预期安装。我什至可以将软件包安装在虚拟解决方案中以填充本地缓存,然后将它们成功安装到错误的解决方案中。我尝试从 NuGet 控制台对 url 进行 Invoke-WebRequest,我得到了 HTTP 200。

什么会导致这种情况?有没有办法在每个解决方案/项目的基础上覆盖包源?

我有同样的问题。我昨天安装了 VS 2013 Update 2,也许这是一个新错误...?顺便说一句,我可以毫无问题地通过“管理 NuGet 包”对话框安装任何包,这个问题只发生在包管理器控制台上。
我有同样的问题。始终在“管理包”对话框中工作——从不在包管理器控制台中工作。
重新启动 Visual Studio 为我解决了这个问题ಠ_ಠ

K
Kyle Dev-ious

即使我的 Package Source 在包管理器控制台中设置为 nuget.org,显式添加 -Source nuget.org 参数为我解决了这个问题。

所以一个使用的例子是:

Install-Package Akka.net -Source nuget.org

Akka.net 是您要安装的软件包,这里只是一个示例。


我重新启动了我的 PC 和 Visual Studio。但是.. 添加 -Source nuget.org 确实为我现有的多项目 .sln 中的新 .vbproj 实例做了诀窍
在哪里添加这个论点以及如何添加?您能否提供更多信息。
它也对我有用(现在,实际上!)。我试图安装旧版本的 jQuery,但它不断引发错误:“nuget.org [nuget.org/api/v2/] 的源代码”。我不知道如何解决它。
谢谢,我是这样做的:Install-Package jQuery.UI.Combined -Source nuget.org
你知道这是如何工作的吗?我只是好奇,因为即使它有效,这对我来说也没有任何意义。所以错误说 The source at nuget.org [nuget.org/api/v2/] is unreachable 然后我指定 same source -Source nuget.org 并且它有效?
Z
Zarepheth

我必须在 Visual Studio 的选项中复制默认的 NuGet 源。使用复制的源,我将 URL 从 https 更改为 http。这为我解决了这个问题。

此建议的功劳属于:https://nuget.codeplex.com/discussions/561075#PostDetailsCell_1354351,属于“jpharris4”。


这是一个很好的观点。 NuGet 可能对证书验证很敏感。
C
Community

您也可以从 UI 更改 NuGet 源。只需将 NuGet 源更改为旧版本,它应该可以正常工作。

https://i.stack.imgur.com/K6aBR.png

VS 2015 中与 api.nuget.org (v3) 相关的错误似乎仍然很少。


O
Omnidisciplinarianist

我不确定什么会导致您的问题,但确实有一种方法可以在每个解决方案的基础上覆盖包源,但前提是您已在给定解决方案上启用了 NuGet 包还原。

解决方案启用 NuGet 包还原后,名为“.nuget”的文件夹将添加到解决方案中。在此之下将是一个名为“NuGet.targets”的文件,该文件具有一个 ItemGroup,其 Condition 为“'$(PackageSources)' == ''”,就像您将在附加图像中看到的那样。

如果 ItemGroup 为空(或完全注释掉,如图所示),则解决方案将使用特定文件,该文件应与 TOOLS >> OPTIONS 下列出的源相同。但是,如果您取消注释或将 PackageSource 项目添加到该 ItemGroup,则解决方案将搜索列出的包源,并且仅搜索列出的包源。

https://i.stack.imgur.com/1gtOm.png


NuGet.targets 文件中定义的包源仅影响在还原包时生成期间使用的包源。 .nuget 目录中 NuGet.config 文件中的包源将影响 Visual Studio 中项目可用的包源。
我确实为此解决方案启用了包还原。 ItemGroup 的配置与您的屏幕截图中的一样,我认为这是默认设置,所以我认为这不是问题所在。但是,包还原在很久以前就已启用,并且目标文件从那时起发生了变化。我尝试通过删除这些文件并重新启用包还原将这些文件更新到最新版本,看起来它解决了问题。
或不。起初它可以工作,但在恢复解决方案的软件包并重新启动 Visual Studio 后,问题又回来了。
一些澄清问题:1)您是否在packages.config中引用了正确的版本? 2) 您是否确认您要查找的版本仍然存在于 NuGet server 上? 3) 您是否在完成 1) 和 2) 后清理了解决方案并重新构建了它?
如果有什么安慰的话-我遇到了这个问题,但仅在我的工作 PC 上,并且大多数项目都会发生这种情况。奇怪的是,它是断断续续的,让我发疯!
r
roNog

在我的包管理器控制台中,我看不到任何来源

转到:工具->选项-> Nuget包管理器->包源

我找到了来源。取消选中它们,然后它们重新检查它们使它们重新出现在我的包管理器控制台中


g
gavinfonseca

我必须提供 comman 以及完整的 url 作为 Install-Package MySql.Data.Entity -Version 6.9.8 -Source http://www.nuget.org/api/v2


B
Byron

就我而言,原因是包裹有协议。通过 UI -“管理 NuGet 包”对话框,您可以选择接受并继续。

VS 2013 中的包管理器控制台似乎对此有问题。正如其他人所说,重新启动 VS 2013 可能会为控制台解决它。


p
praguan

这在 VS 2015 prof 中对我有用:工具 -> 选项 -> Nuget 包管理器 -> 包源

按添加按钮 在名称标签中编辑:nuget.org 在源标签中编辑:https://www.nuget.org/api/v2/ 按 OK

希望能帮助到你 ;)


对于 VS 2015,您应该使用他们列表中的 v3……而不是 v2!摘自他们的主页 NuGet feed v3(VS 2015 / NuGet v3.x):api.nuget.org/v3/index.json NuGet feed v2(VS 2013 及更早版本 / NuGet 2.x):nuget.org/api/v2
R
RredCat

我对相同的消息有同样的问题。但我的问题的原因是失去了与 TFS 的连接。我的 TFS 服务器托管在其他网络中,我使用 VPN 访问它。当我尝试在未建立与 TFS 的连接的情况下安装软件包(VPN 已关闭)时,我遇到了同样的问题。

请注意此 TFS 行为。


R
Rakesh Pahuja

发生是因为您在离线模式下工作,当您重新连接网络时需要注销并重新登录。包管理器将顺利重新初始化。


S
Syed Abbas

我遇到了这个问题 VS2013 并浪费了 3 个小时的时间。

不确定问题的原因是什么。但上述解决方案都不适合我。

重新安装 Nuget 包管理器控制台对我有用。

工具 -> 扩展和更新 -> 在全部下查找 Visual Studio 的 Nuget 包管理器并点击卸载。

转到 https://marketplace.visualstudio.com/items?itemName=NuGetTeam.NuGetPackageManagerforVisualStudio2013 并下载扩展程序。


u
user1687805

enter image description here可能是您的办公室/家庭防火墙阻止了 nuget.org,因此请尝试连接不同的互联网网络,例如从您的手机或 wifi 连接。我能够通过这种方法解决。


R
RonnieScotland

这些解决方案都不适用于 VS2013。是的,我知道这是 2020 年。最后我将 nuget 包下载到本地文件夹,将文件夹添加到 nuget 设置,然后瞧!,能够安装包。