.NET Core 3.1项目提示找不到ConfigurationManager是什么原因?
问题根因
System.Configuration.ConfigurationManager 并不是 .NET Core 3.1 的内置默认组件,你之前的认知来自传统 .NET Framework 的使用经验:
- 在 .NET Framework 环境下,这个API是随框架全局安装的,只要写了
using System.Configuration就能直接调用,不需要额外引入依赖; - 到了 .NET Core 体系,旧的System.Configuration相关API没有被打包进SDK基础类库,而是被拆分到了独立的NuGet分发包里。你只加了命名空间引用、没有安装实际包含类型的依赖包时,编译器根本找不到
ConfigurationManager类型,无效的using语句自然会被IDE标灰。
修复步骤
- 右键项目节点,选择「管理NuGet程序包」
- 在搜索框输入
System.Configuration.ConfigurationManager,选择适配.NET Core 3.1的版本(4.7.x系列版本均可,不要选过高的不兼容版本)完成安装 - 安装完成后回到代码编辑页,原本灰色的using引用会自动恢复有效状态,
ConfigurationManager可以正常识别调用。
补充说明:如果是全新开发的.NET Core项目,更推荐使用官方新的
Microsoft.Extensions.Configuration配置体系,支持多配置源、强类型绑定、环境适配等能力,灵活性比旧的ConfigurationManager高很多。如果是从.NET Framework迁移旧项目、不想大规模改写配置相关代码,安装上述NuGet包即可兼容原有ConfigurationManager的写法。
内容的提问来源于stack exchange,提问作者Frank Mehlhop
相关产品推荐
相关产品推荐

