你需要添加代理设置到 Nuget. Config 文件。

某些开发环境可能既不使用浏览器也不使用代理。

一种解决方案是将包从 nugget (如 https://dotnet.myget.org/F/dotnet-core/api/v3/index.json)下载到一个共享目录,然后执行以下操作:

dotnet add package Microsoft.AspNetCore.StaticFiles -s "shared drive:\index.json"

我希望这对你有用。

去吧

设置(个人电脑的全局设置) > 网络和互联网 > 代理 > 自动代理设置 > 并设置自动检测设置为关闭。

这个错误可能只是暂时的网络问题引起的,并消失,如果再次尝试。

为了支持@Eddie Chen (给你)提供的答案,我还必须在以下文件中添加 http _ agent 设置:

C: Windowssystem32配置系统配置文件 AppData 漫游 NuGetNuGet.Config

<add key="http_proxy" value="http://your_proxy_url:8080" />

有些东西可能已经更改了您的代理设置,比如 Fiddler。关闭 Fiddler,然后关闭 VisualStudio 并再次打开它。

在使用 Windows 10中的 docker-compose up命令在 Dockerfile中运行 RUN dotnet restore时,我得到了同样的错误。

enter image description here

我已经尝试了所有可能的解决方案在互联网上提供的,也是保持在 这个悬而未决的问题的眼睛。最后,在花了8个多小时后,通过遵循前面的步骤,我终于能够解决我的问题。

  1. 从系统中卸载 Docker
  2. 重启你的系统
  3. 从这个 链接安装 Docker。下面是我的 Docker 的版本

    enter image description here

  4. 重启你的系统

  5. 启动 Windows 的 Docker,在 Windows 的搜索栏中搜索 Docker。确保它正在运行。

  6. 您还应该转到 Services.msc并确保服务 Docker EngineDocker for Windows Service正在运行。

    enter image description here

  7. 最后,您必须从 C:\Users\{Username}\AppData\Roaming\NuGet检查 Nuget.config 文件。

    Xml version = “1.0”coding = “ utf-8”? > < 配置 > < 软件包来源 > < add key = “ nuget.org”value = “ https://api.nuget.org/v3/index.json”/> < packageRestore > < add key = “ abled”value = “ True”/> < add key = “ auto”value = “ True”/> < bindingRedirects > < add key = “ Skip”value = “ False”/> < 软件包管理 > < add key = “ format”value = “0”/> < add key = “ ability”value = “ False”/>

    希望这个能帮上忙。

我在浏览 NuGet 软件包时也出现了同样的错误,为了解决同样的问题,我采取了以下步骤:

1-转到 %appdata%\NuGet\NuGet.config

2-验证该配置中提到的 url

删除不需要的网址

4-重新启动视觉工作室和检查

我在尝试通过 Jenkins 运行 nuget.exe 时偶然发现了这个问题(默认情况下使用 Local System 帐户配置为服务)。我编辑了如下 C:\Windows\System32\config\systemprofile\AppData\Roaming\NuGet\NuGet.Config文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="http_proxy" value="http://proxy_hostname_or_ip:3128" />
<add key="https_proxy" value="http://proxy_hostname_or_ip:3128" />
</config>


<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>


</configuration>

为了测试命令提示符可以通过 电子工具启动:

psexec -i -s CMD

以及在新创建的 cmd 窗口中的实际测试运行(作为 Local System 运行) :

path_to_nuget\nuget.exe restore "path_to_solution\theSolution.sln"

进入-> 工具-> 扩展和更新,卸载 NuGet 软件包管理器。.重新启动视觉工作室,并重新安装它... 。一切都会恢复正常

在我的情况下,我有运行 Fiddler,它已经改变了我的代理设置

我正在使用 VSO/Azure DevOps。

您也可以直接在浏览器中访问提要网址。你最终可能会得到一个包含如下信息的响应,这可能会让你的诊断更快:

The user does not have a license for the extension ms.feed.

对我来说,我只是重新启动了码头,然后开始工作。

如果您收到这个错误,但是您没有代理服务器,您可以访问

%userprofile%\AppData\Roaming\NuGet\NuGet.Config

注释下面这句话:

<config>
<!-- Proxy settings -->
<add key="http_proxy" value="host" />
<add key="http_proxy.user" value="username" />
<add key="http_proxy.password" value="encrypted_password" />
</config>

这对我很有用,因为我得到了这个错误,但是我没有代理服务器。

在我的例子中,我必须在 Visual Studio Options-> NugetPAckageManager-> source 中添加源代码 然后重新启动可视化工作室命令提示符

我有这个错误,然后我意识到我登录了我的个人微软帐户,而不是我的工作帐户。

希望这个能帮上忙。

值得注意的是。Net 核心 SSL 身份验证可能导致这种情况。禁用他们最新的网络堆栈实现,为我解决了这个问题。

你可以永久性地设置它,也可以直接启动你的应用程序,使用:

DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0 dotnet ...

也许 这个有用

对于我来说,删除位于 C: UserYourNameHere 中的. nuget 文件夹修复了这个问题。

在我的情况下,它发生了,因为我没有互联网连接,它是试图脚手架

我在尝试连接到我的私有 TFS 服务器而不是公共 NuGet API 服务器时遇到了类似的问题。由于某种原因,我在 AD 服务器和 TFS 服务器之间遇到了一个问题,因此它总是返回一个401。NuGet 配置文章显示,您可以像下面这样将您的 AD 用户名和密码添加到配置文件:

  <packageSourceCredentials>
<vstsfeed>
<add key="Username" value="yourname@company.com" />
<add key="Password" value="this is an encrypted password" >
<!-- add key="ClearTextPassword" value="not recommended password" -->
</vstsfeed>
</packageSourceCredentials>

这不是一个非常理想的解决方案,更像是一个临时的解决方案,直到我能够找出 AD 服务器的问题所在,但这应该可以解决问题。

2019年,nuget 软件包管理器的开发人员建议禁用 tls 1.3作为变通方案(参见 第7705期)。

通过按 + R键并键入 regedit 进来来打开注册表编辑器

导航到:

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client

DisabledByDefault键0的值更改为1

然后重新启动 VisualStudio。

在维基百科上了解更多关于 TLS 的信息
在 github 上阅读更多关于7705期 WRT NuGet 的内容

第三方编辑

请注意,这将禁用 tls 1.3操作系统,而不仅仅针对 nuget 或 dotnet。
Windows10版本1909 确实包含了 TLS 1.3的实验性实现,但后来的版本应该没问题。基于来自 无法浏览 nuget 包的一个答案,您可以通过控制台程序测试 tls 是否是问题

static async Task Main(string[] args)
{
var client = new HttpClient();
string uri = "https://apiint.nugettest.org/v3-index/index.json";
var response = await client.GetAsync(uri);
string msg = "If you see this, your machine has no TLS/SSL issues with nuget.org";
Console.WriteLine(msg);


}

如果使用 Visual Studio 2019,如果在 devenv.exe.config 中没有使用任何默认代理,只需删除“ defaultxy”部分。在 VS 2017中,这一部分不存在

改变

<defaultProxy enabled="true" useDefaultCredentials="true">
<proxy bypassonlocal="True" proxyaddress="http://<yourproxy:port#>"/>
</defaultProxy>

<!--<defaultProxy enabled="true" useDefaultCredentials="true">
<proxy bypassonlocal="True" proxyaddress="http://<yourproxy:port#>"/>
</defaultProxy>-->

否则提供适当的代理用户名和密码。

我试图添加一个 Azure 工件 NuGet 源代码。

我遵循了微软的指示 给你,但有一个关键的疏忽。

我忘了用 /v2代替 /v3/index.json

enter image description here

看起来 Nuget 仍然使用代理脚本地址(为我们的 VPN) ,即使代理设置是禁用的。我删除了脚本地址,它工作。

enter image description here

如果你在 Mac 上使用公司代理服务器,请确保你的 http/https 复选框已经选中并应用了。

设置你的电脑-> 网络和互联网代理-> 自动代理设置然后 Set 自动检测设置关闭和清除脚本地址

安装小提琴手也给我带来了类似的问题。卸载 fiddler 并从 machine.config (从 Framework 和 Framework64)删除 fiddler 代理解决了这个问题。

我在 vs2010上使用的是 Nuget 的旧版本,默认为 TLS 1.0 在这里,可以通过更改。在注册表项中配置的 Net 框架

reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:64


reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:32

仅供参考

NuGet.org 将在6月15日永久删除对 TLS 1.0和1.1的支持。请确保您的系统使用 TLS 1.2。

有关 TLS 1.2支持的信息,可以参考此 链接

删除 %AppData%\Roaming\NuGet\NuGet.Config和重新启动 VS2019对我来说很有效。

类似 https://github.com/NuGet/Home/issues/3281

如果您看到以下错误,您可能需要设置 Azure Artiacts Credential,请参阅这个 Github 链接,您可以通过运行 Powershell 脚本或手动安装凭证提供程序。

error :   Response status code does not indicate success: 401 (Unauthorized).

我在为我的 ASP.NET 核心 MVC 项目搭建标识的时候也出现了同样的错误消息。由于我的连接不在代理后面,因此删除/编辑代理配置是没有意义的。我也不想删除文件或卸载 PMC。环顾四周,我意识到“清除所有 NuGet 缓存”按钮在工具-> 选项-> NuGet 软件包管理器-> 一般。按下按钮后,我不得不等待一段时间才能完成手术。在那之后,我试图再次架构身份,但它没有工作。然后我决定重新启动 VS,瞧:)

enter image description here

nuget restore

还有

msbuild /t:restore

两者都没有为我工作,同样的错误。但是

dotnet restore

效果很好,试试这个

我无法解决问题本身,但找到了安装软件包的方法。

只需在 Package Manager Console中直接将 nuget.org 指定为源代码即可。

Update-Package -reinstall -Source nuget.org
  1. 转到 %appdata%\NuGet\NuGet.config

  2. 修改这一行:

    <packageSources>
    <add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" />
    <add key="Package source" value="https://api.nuget.org/v3/index.json" />
    </packageSources>
    

在我的例子中,问题是我正在构建一个旧的 Win7虚拟机上。

我在 https://github.com/NuGet/NuGetGallery/issues/8176#issuecomment-683923724上找到了这个修复方法:

Nuget.org 开始强制使用 TLS 1.2(并放弃了对它的支持 Windows 7禁用了 TLS 1.2 默认情况下(检查下面的 DisabledByDefault值) 注册表中的 HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client)。要启用支持,请确保已安装了更新(*)并打开支持:

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v DisabledByDefault /t REG_DWORD /d 0 /f /reg:32
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v DisabledByDefault /t REG_DWORD /d 0 /f /reg:64
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v Enabled /t REG_DWORD /d 1 /f /reg:32
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v Enabled /t REG_DWORD /d 1 /f /reg:64

(*)所指的更新是 Microsoft kb3140245: Windows7的更新(KB3140245)

我安装了更新,重新启动(按照更新的要求) ,添加了那些注册表项,然后 Nuget 工作得很好。

我在尝试在本地托管的 Gitlab 实例中设置 NuGet 包时遇到了这个错误。错误指示401未授权代码。解决办法是:

nuget source Remove -Name SOURCE_NAME

然后添加相同的源代码,但是这次在命令中指定用户名和密码:

nuget source Add -Name SOURCE_NAME -Source SOURCE_URL -UserName GITLAB_DEPLOY_TOKEN_USERNAME -Password GITLAB_DEPLOY_TOKEN

我在 VisualStudio2015上尝试执行 安装包现代化时遇到了类似的问题。我通过以下步骤解决了我的问题:

  1. 从其在线源下载软件包。
  2. 转到 工具/NuGet 包管理器/包管理器设置
  3. 从窗口中选择 包装来源
  4. 通过单击 +标志添加一个新的包源。通过单击 ...(三点)符号输入名称和源位置。
  5. 确保只选中刚刚添加的包源。取消选中所有其他包源。
  6. 转到 包管理器控制台键入 Install-Package Modernizr
  7. VisualStudio2015自动安装包,并在根文件夹中创建 剧本包裹文件夹。

我希望同样的解决方案在安装其他软件包时也能起作用。

在 Windows7上测试

步骤1: 打开命令窗口(运行 cmd) 步骤2: 如果禁用 TLS 1.2,运行以下命令以启用 TLS 1.2支持(添加注册表项) :

“ HKLM SYSTEM CurrentControlSet Control SecurityProvider SchanNEL Protocol TLS 1.2 Client”/v DisabledByDefault/t REG _ DWORD/d 0/f/REG: 32 REG add“ HKLM SYSTEM CurrentControlSet Control SecurityProvider SMANNEL Protocol TLS 1.2 Client”/v DisabledByDefault/t REG _ DWORD/d 0/f/REG: 64 REG add“ HKLM SYSTEM CurrentControlSet Control SecurityProvider SMANNEL Protocol TLS 1.2 Client”/v Enable/t REG _ DWORD/d 1/f/REG: 32 REG add“ HKLM SYSTEM CurrentControlSet Control SecurityProvider SMANNEL Protocol TLS 1.2 Client”/v Enable/t REG _ DWORD/d 1/f/REG: 64

我尝试了这里列出的许多答案,但这些都没有解决问题。最后,我不得不转到 Windows 中的凭据管理器,删除“ Windows 凭据”下的 VSCredenals _ xxx 条目,并重新启动 Visual Studio 2019。

在那之后——在下一次 VS 启动时—— VS 终于要求我提供代理凭证——输入之后,Visual Studio 的互联网访问工作正常。

(VS 似乎很久以前就存储了我最初获得的代理凭证——但由于我们公司在执行3个月后更改了密码,这些凭证不再有效。)

你的一个核能源可能无法联系到。

在编写本文时,AspNetCore (https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json)似乎有一个过期的证书或者已经被完全删除。

Can't access the JSON file

只要从设置中删除 nuget 源就可以解决这个问题

Removing Nuget Source from Visual Studio

简单:

  1. 关闭 VS2019
  2. 转到 C:\Users\you\AppData\Roaming\NuGet
  3. 删除文件 NuGet.Config
  4. 重新启动 VS2019

你可以走了!

如果您是 Windows 用户,则可以在凭据管理器中删除或更新凭据。

在 Windows10中,进入下面的路径:

控制面板→所有控制面板项目→凭证经理

或者在“开始”菜单的“搜索 Windows”部分搜索“凭证管理器”。

然后从凭据管理器中选择“ Windows 凭据”。

凭据管理器将在“通用凭据”下显示许多项目,包括您的 Outlook 和 GitHub 存储库

单击 Git 右侧的下拉箭头,它将显示编辑和删除选项。如果您删除,凭证弹出窗口将出现在下一次当您获取或拉。或者您可以直接在那里编辑凭据。

在我的情况下,我失去了与 Git 的连接。我只是再次添加连接,它工作了! :

Connection to Team Explorer

禁用你的杀毒软件。 在我的案例中,AVG 阻止访问 nuget.org

我通过安装 IISCrypto 并在命令行上运行它来修复这个问题:

IISCryptoCli.exe /template default /reboot

我有几个 Windows2016服务器,其中 VisualStudio 无法连接到 NuGet。在尝试了几乎所有其他建议的修复程序(注册表更改、 Visual Studio/NuGet 相关的缓存清除或文件/配置更改)之后,下面的内容为我们解决了这个问题。

我们有一个设置了密码的组策略(GPO) ,我将这些密码添加到我们的 GPO 密码列表中以使其工作。

TLS _ ECDHE _ RSA _ With _ AES _ 256 _ GCM _ SHA384 TLS _ ECDHE _ RSA _ With _ AES _ 128 _ GCM _ SHA256

Https://github.com/nuget/announcements/issues/60

好吧,我尝试了以上所有的答案,希望我的注册表现在没有被冲走。但这似乎为我解决了问题:

Https://learn.microsoft.com/en-us/answers/questions/959588/visual-studio-2022-won39t-connect-to-nuget.html

enter image description here

添加: TLS _ ECDHE _ RSA _ WITHAES _ 256 _ GCM _ SHA384

中以逗号分隔的字符串:

MicrosoftCryptography ConfigurationSSL00010002

我希望这可以帮助下一个人谁希望作出一个有趣的快速星期六上午的概念验证,然后结束了花费3个小时寻找修复! ! !

我在这上面花了一天时间,尝试了所有的方法。 对我来说,这是我没有更新我的密码在 Visual Studio!

我已经改变了我的工作微软帐户密码上周左右,我也使用该帐户登录到视觉工作室,但我并没有提示更新它,也没有退出视觉工作室,它仍然登录。当我点击 Visual Studio 右上角的缩写 > 帐户设置 > 所有帐户下的工作帐户有黄色感叹号三角警告标志旁边,更新新密码,然后更新一些包,网络恢复,清理和重建和错误消失。

就我而言,是我在不知情的情况下完全退出了我的工作账户。重新登录我的视觉工作室账户解决了这个问题。

我必须在命令提示符下运行 dotnet 恢复。找到了 sln,它成功地工作了(而 VS 未能恢复 nuget 包)。在此之后,我至少能够在 VisualStudio 下列出已安装的包,但是“ Updates”仍然无法加载。

我删除了% localappdata%/Nuget 中的所有内容并清除了 NuGets 缓存

dotnet nuget locals all --clear

重新启动后,VisualStudio2022恢复了我的包。

答案就是删除 Nuget。如果您使用的是自定义提要,配置将无法工作。如果使用自定义提要,则需要编辑 Nuget。配置文件指向自定义提要的索引。

如果任何人仍然有困难和 NuGet 的答案不工作。下面的答案对我很有用(DevOps Azure 托管 TFS 的一家公司) : 注册和退出团队基金会。TFS 和 VS 都报告为已签入,但事实并非如此。不得不辞职,症状和观察所描述的一样。有关更多细节,请参见此 回答

由于身份验证问题,这种情况也可能发生,因此您可能需要重新向 VisualStudio 进行身份验证。

在这种情况下,只需从 package.config文件所在的文件夹(通常是项目的根目录)运行以下命令:

dotnet restore --interactive

系统会提示您从浏览器访问配对 URL,并输入配对代码,例如:

要登录,请使用 Web 浏览器打开页面 https://microsoft.com/devicelogin并输入代码 C2DEJ87H
鉴定。

这需要.NETCLI,它包含在可以从 https://learn.microsoft.com/en-us/dotnet/core/install/windows安装的.NETCoreSDK 中