在 Visual Studio 2012 中安装包 Swashbuckle/swagger 时出错

Mar*_*yes 1 c# visual-studio nuget visual-studio-2012

我正在学习安装“Swashbuckle”或 Swagger 的教程,以创建 C# Web API 的文档。

我正在使用 Visual Studio 2012 执行此任务,但是,当我在 NuGet 包管理器控制台中执行以下命令时:

Install-Package Swashbuckle
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

安装包:基础连接已关闭:发送时发生意外错误。在行:1 字符:16

  • 安装包<<<< Swashbuckle
  • CategoryInfo : NotSpecified: (:) [Install-Package], WebException
  • FullQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand

我试过:

  • 卸载并安装 NuGet 包管理器 - 它具有“此扩展已安装”的标志。

  • 按照此处显示的步骤启用 TLS1/TLS2 - Stack Overflow 中的一些问题和答案指出此错误是由于 TLS 中的那些更改...

  • 从此 URL 下载了“nuget.exe”:https://dist.nuget.org/win-x86-commandline/latest/nuget.exe并使用此程序下载包,但是,它没有安装在项目中,而是安装在Downloads文件夹中 - 为此,我认为问题不在于我正在处理的公司代理...

  • 我按照这里提到的步骤在“nuget.config”文件中设置代理设置,但是结果是一样的。

  • 使用“https://www.nuget.org/api/v2/”和“https://api.nuget.org/v3/index.json”作为包源,但是,第一个 URL 显示错误:

    基础连接已关闭:发送时发生意外错误

    而第二个 URL 只是继续执行。

  • 关闭并重新打开 Visual Studio 的所有实例(2 个打开的实例)。

在我正在处理的解决方案中是否有更多选项可以安装 NuGet 包?

Mr *_*ian 5

在 Visual Studio 2012 中安装包 Swashbuckle/swagger 时出错

对于您的问题,由于使用TLS 1.0了旧的 VS2012并且最新的 nuget cli 不支持它。您应该使用 TLS 1.2

解决方案

请运行

[Net.ServicePointManager]::SecurityProtocol=[Net.ServicePointManager]::SecurityProtocol-bOR [Net.SecurityProtocolType]::Tls12 
Run Code Online (Sandbox Code Playgroud)

包管理器控制台下(在TOOLS --> Nuget Package Manager 下