.NET Core 3.0中无法安装Newtonsoft.Json 12.0.2求解决方案
解决方案
原因分析
错误核心是NU1605降级警告被视为错误:你的.NET Core 3.0项目默认依赖Microsoft.Extensions.Configuration.Abstractions等包的3.0.0版本,但已安装的EPPlus 6.0.8依赖这些包的3.1.10版本,NuGet尝试将版本从3.1.10降级到3.0.0时触发了"警告转错误"规则,导致安装失败。
方案一:显式安装高版本依赖包
直接在项目中安装EPPlus依赖的3.1.10版本包,覆盖项目默认的3.0.0版本:
- 打开包管理器控制台,执行以下命令:
Install-Package Microsoft.Extensions.Configuration.Abstractions -Version 3.1.10 Install-Package Microsoft.Extensions.FileProviders.Abstractions -Version 3.1.10 Install-Package Microsoft.Extensions.FileSystemGlobbing -Version 3.1.10
- 或者在项目的
.csproj文件中手动添加包引用:
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="3.1.10" /> <PackageReference Include="Microsoft.Extensions.FileProviders.Abstractions" Version="3.1.10" /> <PackageReference Include="Microsoft.Extensions.FileSystemGlobbing" Version="3.1.10" />
完成后重新安装Newtonsoft.Json 12.0.2即可。
方案二:降级EPPlus到兼容.NET Core 3.0的版本
EPPlus 6.x系列最低要求.NET Core 3.1,可将EPPlus降级到支持.NET Core 3.0的5.x版本(比如5.8.1):
- 执行卸载和安装命令:
Uninstall-Package EPPlus Install-Package EPPlus -Version 5.8.1
此方案无需修改其他依赖包,更贴合.NET Core 3.0的原生环境。
方案三:临时禁用降级警告转错误(不推荐)
如果仅需临时绕过错误,可在.csproj文件中添加配置禁用NU1605警告:
<PropertyGroup> <NoWarn>$(NoWarn);NU1605</NoWarn> </PropertyGroup>
该方案可能隐藏潜在版本兼容问题,仅建议作为临时测试使用。
内容的提问来源于stack exchange,提问作者Korir Cornelius
相关产品推荐
相关产品推荐

