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

The type name 'ConfigurationManager' could not be found in the namespace 'System.Configuration'. This type has been forwarded

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

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

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

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

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

在 Visual Studio 2019 中,单击顶部的工具 选项卡。

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

搜索“System.Configuration.ConfigurationManager”。

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

.NEt 5 不使用旧的 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

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

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