C# SetBasePath在.NET Core 5下的ConfigurationBuilder中不存在

C# SetBasePath在.NET Core 5下的ConfigurationBuilder中不存在,c#,.net-core,console-application,.net-5,C#,.net Core,Console Application,.net 5,根据.NETCore5的文档,有一种方法,它被广泛应用于许多博客(,等等)。没有人认为这是一个奇怪的抓到你之类的东西。但是,当我尝试下面的语法时,它被标记为红色,并声称不存在 using System; using Microsoft.Extensions.Configuration; static void Main(string[] args) { string path = AppDomain.CurrentDomain.BaseDirectory; IConfigurationB

根据.NETCore5的文档,有一种方法,它被广泛应用于许多博客(,等等)。没有人认为这是一个奇怪的抓到你之类的东西。但是,当我尝试下面的语法时,它被标记为红色,并声称不存在

using System;
using Microsoft.Extensions.Configuration;
static void Main(string[] args)
{
  string path = AppDomain.CurrentDomain.BaseDirectory;
  IConfigurationBuilder builder = new ConfigurationBuilder();
  builder.SetBasePath(path);
}
我不知道为什么会发生这种情况,也不知道该怎么办

复制步骤:

  • 在C#中的.NET Core 5中创建一个普通控制台应用程序
  • 在Program.cs中粘贴代码,替换文件内容
  • 尝试编译或执行
  • 收到的错误如下所示

    错误CS1061
    “ConfigurationBuilder”不包含“SetBasePath”的定义,并且找不到接受“ConfigurationBuilder”类型的第一个参数的可访问扩展方法“SetBasePath”(是否缺少using指令或程序集引用?)


    据我所知,我已经准备好了所有的先决条件。

    请记住,多个类型可以通过为单个类型提供方法。因此,
    SetBasePath
    从来不是
    IConfigurationBuilder
    界面上的方法

    多个程序集可以向同一名称空间提供类型,文档称定义
    SetBasePath
    扩展方法的类型位于:

    FileConfigurationExtensions类定义命名空间: Microsoft.Extensions.Configuration程序集: Microsoft.Extensions.Configuration.FileExtensions.dll


    您可以轻松地验证它是否不存在于依赖项中。所以你错过了一个NuGet软件包。事实证明,这一点很容易找到:

    似乎正是问题所在。让我困惑的是,我以前没有发现这个问题。看来,在我这么做之前,应该还有其他一些可怜的笨蛋,而不是考虑安装额外的软件包。嗯,我想我是这个问题的始作俑者。