Visual Studio 2019包管理器控制台离线安装EPPlus包报错如何解决
报错详情
Install-Package : 尝试添加源'https://api.nuget.org/v3/index.json'时抛出异常'System.AggeratteException'
请确认您的所有在线包均可用。
发生一个或多个错误。
无法加载源'https://api.nuget.org/v3/index.json'的服务索引。
发送请求时发生错误。
基础连接已关闭:发送时发生意外错误。
无法从传输连接读取数据:远程主机强迫关闭了一个现有连接。
排查步骤
- 确认离线安装准备是否完整:检查是否已提前下载EPPlus对应的
.nupkg安装包及所有依赖包,存放到本地固定文件夹 - 检查NuGet包源配置:打开VS2019【工具】-【NuGet包管理器】-【包管理器设置】-【包源】,确认是否默认启用了
https://api.nuget.org/v3/index.json等在线源,离线场景下未禁用在线源会优先拉取在线资源 - 检查网络连通性:若需使用在线源,测试当前网络是否能正常访问NuGet官方源,公司内网防火墙、代理规则通常会拦截这类外部资源请求
解决方案
场景1:完全离线安装EPPlus
- 从可联网设备提前下载对应版本的EPPlus
.nupkg包及其所有依赖包,统一存放在本地同一个文件夹中 - 禁用所有在线包源:进入包管理器设置,取消勾选所有
http/https开头的在线包源,点击【+】新增本地包源,路径指向存放.nupkg的本地文件夹,仅保留该本地源为启用状态 - 包管理器控制台执行指定源安装命令:
Install-Package EPPlus -Source 本地文件夹绝对路径 -Version 目标版本号 - 安装完成后可按需恢复原有在线包源的启用状态
场景2:保留在线源安装
- 强制NuGet使用TLS 1.2协议访问官方源,在包管理器控制台执行如下命令:
[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 - 若当前网络使用代理,进入VS【工具】-【选项】-【网络】,配置正确的代理地址、验证信息
- 若内网防火墙拦截NuGet源请求,联系运维人员将
api.nuget.org加入访问白名单
内容的提问来源于stack exchange,提问作者Amit Bulchandani
相关产品推荐
相关产品推荐

