在命名空间“System.Configuration”中找不到类型名称“ConfigurationManager”此类型已转发

问题描述

我在使用 Visual Studio 2019 的 .NET 5.0 项目中收到此错误(已在社区/学生版和专业版上试用)。

“在命名空间“System.Configuration”中找不到类型名称“ConfigurationManager”。此类型已转发...”

我发现的许多答案都说您需要添加“使用 System.Configuration;”以及通过 Project -> Add Reference 添加程序集命名空间作为引用。这个答案没有我有用,因为在“项目”选项卡中没有“引用”文件或任何“添加引用”选项。 参考管理器中也没有“程序集”选项卡。只有“项目”、“共享项目”、“COM”和“浏览”。

如何添加 System.Configuration 作为参考以便我可以使用 ConfigurationManager?

解决方法

编辑:虽然这个答案可能会消除错误,但这不是“正确”的答案,因为 .NET 5 不支持 ConfigurationManager。其他答案解释得最好。

在 Visual Studio 2019 中,点击顶部的工具标签。

工具 -> NuGet 包管理器 -> 管理解决方案的 NuGet 包...

搜索“System.Configuration.ConfigurationManager”。

安装到您的项目中,错误应该消失了。

,

.NEt 5 dosent 使用 Old ConfigurationManager 你需要从 json 中读取

    public IConfiguration Configuration { get; set; }
    public Startup(IHostingEnvironment environment) 
    {
      Configuration = new Configuration()
                          .AddJsonFile("config.json");
    }
    
    
    var options = ConfigurationBinder.Bind<AppSettings>(Configuration); 
    Console.WriteLine(options.SomeSetting);

更多信息请参考 GitHub.com/aspnet/Options/test/Microsoft.Extensions.Options.Test/OptionsTest.cs

,

.NET 5 不支持 System.Configuration.ConfigurationManager。请参阅此处了解如何将具有 web.config 文件的应用迁移到 .NET Core 模式 Migration Configuration

虽然可以在 .NET 5 应用程序中使用 System.Configuration.Configuration 管理器,但这是一个坏主意。该框架已将新内容与应用程序启动集成在一起,如果您不使用它,您就会让自己做更多的工作。较新的配置模式更易于使用和部署到多个环境中。如果您有一个现有的 .NET 经典应用程序想要移植到 .NET 5,请按照上面的文档进行操作。如果这是一个新应用程序,请查看 Microsoft.Extensions.Configuration 命名空间。