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

Eti*_*heu 153 c# install nuget visual-studio-2013

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

出于某种原因,Install-Package继续告诉我nuget画廊无法访问.

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

这只发生在我们的一个解决方案中.如果我在同一个存储库中创建新解决方案或使用另一个解决方案,则将按预期安装包.我甚至可以在虚拟解决方案中安装软件包以填充本地缓存,然后在故障解决方案中成功安装它们.我试过Invoke-WebRequest从NuGet控制台获取URL,我得到了一个HTTP 200.

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

sel*_*ape 338

即使我的Package Source在Package Manager Console中设置为nuget.org,显式添加-Source nuget.org参数也为我修复了这个问题.

所以使用的一个例子是:

Install-Package Akka.net -Source nuget.org

Akka.net是你想要安装的软件包,它只是一个例子.

  • 你知道这是怎么回事吗?我很好奇,因为这对我来说没有任何意义,即使它有效.所以错误说_在nuget.org [https://www.nuget.org/api/v2/]的来源是无法访问_然后我指定*相同的*源`-Source nuget.org`并且它有效吗? (7认同)

Zar*_*eth 10

我不得不在Visual Studio的选项中复制默认的NuGet源代码.使用复制的源,我将URL更改httpshttp.这解决了我的问题.

此建议的功能属于:https://nuget.codeplex.com/discussions/561075#PostDetailsCell_1354351,"jpharris4".


小智 6

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

一旦解决方案启用了NuGet Package Restore,就会将一个名为".nuget"的文件夹添加到解决方案中.在这下面将是一个名为"NuGet.targets"的文件,它有一个ItemGroup,其条件为"'$(PackageSources)'==''",就像你在附图中看到的一样.

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

Nuget.targets文件的内容

  • NuGet.targets文件中定义的包源仅影响在还原包时构建期间使用的包源..nu​​get目录中NuGet.config文件中的包源将影响Visual Studio中项目可用的包源. (2认同)

Sam*_*azi 6

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

在此输入图像描述

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