【问题标题】:Source unreachable when using the NuGet Package Manager Console使用 NuGet 包管理器控制台时源无法访问
【发布时间】:2014-07-24 09:26:34
【问题描述】:

我们正在将包管理从手动更新文件转移到 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 包”对话框毫无问题地安装任何包,这个问题只发生在包管理器控制台上。
  • 我也遇到了同样的问题。始终在 Manage Packages 对话框中工作 -- 从不在 Package Manager Console 中工作。
  • 重启 Visual Studio 为我解决了这个问题ಠ_ಠ

标签: c# visual-studio-2013 installation nuget


【解决方案1】:

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

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

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

【讨论】:

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

尽管我的 包源 在包管理器控制台中设置为 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 并且它有效?
【解决方案3】:

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

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

【讨论】:

    【解决方案4】:

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

    此建议的功劳归于:https://nuget.codeplex.com/discussions/561075#PostDetailsCell_1354351, to "jpharris4"。

    【讨论】:

    • 这是一个非常好的观点。 NuGet 可能对证书验证很敏感。
    【解决方案5】:

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

    注意这种 TFS 行为。

    【讨论】:

      【解决方案6】:

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

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

      【讨论】:

        【解决方案7】:

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

        【讨论】:

          【解决方案8】:

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

          前往: 工具 -> 选项 -> Nuget 包管理器 -> 包源

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

          【讨论】:

            【解决方案9】:

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

            1. 按添加按钮
            2. 在名称标签中编辑:nuget.org
            3. 在源标签中编辑:https://www.nuget.org/api/v2/
            4. 按确定

            希望对你有帮助;)

            【讨论】:

            • 对于 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
            【解决方案10】:

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

            【讨论】:

              【解决方案11】:

              我在VS2013中遇到过这个问题,浪费了3个小时。

              不确定问题的原因。但以上解决方案都不适合我。

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

              Tools -> Extensions and Updates -> Under All 查找 Nuget Package Manager for Visual Studio 并点击卸载。

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

              【讨论】:

                【解决方案12】:

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

                【讨论】:

                  【解决方案13】:

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

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2013-01-08
                    • 2012-12-19
                    • 2018-02-20
                    • 2012-11-29
                    • 1970-01-01
                    • 2018-08-02
                    • 2015-11-18
                    • 1970-01-01
                    相关资源
                    最近更新 更多