由于缺少配置生成器,没有 DI 无法读取 appsettings.json

Can't read appsettings.json without DI due to missing Configuration Builder

我正在尝试从 appsettings.json 中读取,但我不想使用 DI。我只是想访问该文件。我正在按照 MS 的建议关注 simple configuration

using System.IO;
using Microsoft.Extensions.Configuration;

class Program
{
  public static IConfigurationRoot Configuration { get; set; }

  static void Main(string[] args)
  {
    IConfigurationBuilder builder = new ConfigurationBuilder()
      .SetBasePath(Directory.GetCurrentDirectory())
      .AddJsonFile("appsettings.json");

    Configuration = builder.Build();
  }
}

当我指定对 Microsoft.Extensions.Configuration 的引用时,类 从红色突出显示变为绿色,除了一个 - Configuration Builder 实例创建。它会产生以下错误。

Error CS0246 The type or namespace name 'ConfigurationBuilder' could not be found (are you missing a using directive or an assembly reference?)

我找到的所有示例都是以相同的方式设置的。甚至 docs for Configuration Builder 也说它应该在那里。我不知道如何继续。

如果有任何意义,我正在使用 .NET Core 2.0。

AddJsonFile 方法在 Microsoft.Extensions.Configuration.Json 包和 Microsoft.Extensions.Configuration 命名空间中。

所以 Microsoft.Extensions.Configuration.Json 包需要添加到 project.Once 所有包都已成功恢复,它完美运行。 如果您已经添加了它们,则另一个错误可能会在该点被编译之前阻止构建。

我有类似的东西。 我已经引用了 ConfigurationBuilder 并在同一解决方案的另一个项目中工作。

我copy/pasted将ConfigurationBuilder代码放到一个新项目中,遇到了和你一样的问题。

我查看了解决方案的 NuGet 安装包。

果然,Microsoft.Extensions.Configuration.Json 是为工作项目安装的,而不是新项目。

为新项目安装它,瞧瞧。