在 Visual Studio 2012 中安装包 Swashbuckle/swagger 时出错
Posted
技术标签:
【中文标题】在 Visual Studio 2012 中安装包 Swashbuckle/swagger 时出错【英文标题】:Error at installing package Swashbuckle/swagger in Visual Studio 2012 【发布时间】:2020-11-12 14:28:57 【问题描述】:我正在关注安装“Swashbuckle”或 Swagger 以创建 C# Web API 文档的教程。
我正在使用 Visual Studio 2012 执行此任务,但是,当我在 NuGet 包管理器控制台中执行以下命令时:
Install-Package Swashbuckle
我收到此错误:
Install-Package:底层连接已关闭:发送时发生意外错误。在 line:1 char:16
安装包 CategoryInfo : NotSpecified: (:) [Install-Package], WebException FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand
我试过了:
卸载并安装 NuGet 包管理器 - 它带有“此扩展已安装”的标志。
按照here 显示的步骤启用 TLS1/TLS2 - Stack Overflow 中的一些问题和答案指出,此错误是由于 TLS 中的这些更改...
从这个 URL 下载“nuget.exe”:https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
并使用这个程序下载包,但是,它没有安装在项目中,而是安装在 Downloads 文件夹中- 为此,我认为问题不在于我正在处理的公司代理...
我按照here 中提到的步骤在“nuget.config”文件中设置代理设置,但是结果是一样的。
使用“https://www.nuget.org/api/v2/”和“https://api.nuget.org/v3/index.json”作为包源,但是,第一个 URL 显示错误:
底层连接已关闭:发送时发生意外错误
第二个 URL 继续执行。
关闭并重新打开 Visual Studio 的所有实例(2 个打开的实例)。
在我正在处理的解决方案中是否有更多选项可以安装 NuGet 包?
【问题讨论】:
请尝试在Package Manager Console
下运行[Net.ServicePointManager]::SecurityProtocol=[Net.ServicePointManager]::SecurityProtocol-bOR [Net.SecurityProtocolType]::Tls12
,然后重新安装包。
如果有帮助,请告诉我们。
@PerryQian-MSFT 感谢您的回答。我试过了,它正在下载某些 dll - 看来我的项目有一些依赖问题Successfully installed 'WebActivatorEx 2.0.6'.
,它正在下载和安装这样的 dll。请发表您的评论作为答案,我会接受。谢谢。
当然。很高兴知道这对您有用。我已将其添加为答案,您可以检查一下:)
【参考方案1】:
在 Visual Studio 2012 中安装包 Swashbuckle/swagger 时出错
对于您的问题,由于旧的 VS2012 使用了 TLS 1.0
而最新的 nuget cli 不支持它。你应该使用 TLS 1.2
。
解决方案
请跑
[Net.ServicePointManager]::SecurityProtocol=[Net.ServicePointManager]::SecurityProtocol-bOR [Net.SecurityProtocolType]::Tls12
在Package Manager Console下(在TOOLS-->Nuget Package Manager下)
【讨论】:
以上是关于在 Visual Studio 2012 中安装包 Swashbuckle/swagger 时出错的主要内容,如果未能解决你的问题,请参考以下文章
Win7_64bits下Visual Studio2012中安装配置OpenCV
Windows ServiceWindows Service在Visual Studio中安装调试
修改vs2012默认的库目录及包含目录的方法(续——Win7_64bits下Visual Studio2012中安装配置OpenCV)