3

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

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

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

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

4

3 回答 3

1

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

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

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

搜索“ System.Configuration.ConfigurationManager ”。

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

于 2021-02-09T20:23:56.040 回答
1

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

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

于 2021-02-10T15:42:05.763 回答
0

.NEt 5 dosent 使用您需要从 json 读取的旧 ConfigurationManager

    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

于 2021-02-09T20:33:17.770 回答