.NETCore5下的ConfigurationBuilder中不存在SetBasePath

c#

根据 .NET Core 5 的文档,有一个SetBasePath方法,它被广泛用于大量博客(示例 1、示例 2、示例 3等)。没有任何关于它是一个奇怪的陷阱之类的概念。但是,当我尝试下面的语法时,它被标记为红色并声称不存在。

using System;
using Microsoft.Extensions.Configuration;
static void Main(string[] args)
{
  string path = AppDomain.CurrentDomain.BaseDirectory;
  IConfigurationBuilder builder = new ConfigurationBuilder();
  builder.SetBasePath(path);
}

我不确定为什么会发生这种情况,而不是该怎么办。

重现步骤:

  1. 在 .NET Core 5 中用 C# 创建一个普通的控制台应用程序。
  2. 粘贴Program.cs中的代码以替换文件的内容。
  3. 尝试编译或执行。

收到的错误是这样的。

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

据我所知,我已具备所有先决条件。

回答

请记住,多种类型可以通过Extension Methods 将方法贡献给单个类型。所以SetBasePath从来都不是IConfigurationBuilder接口上的方法。

并且多个程序集可以为同一个命名空间贡献类型,文档说定义SetBasePath扩展方法的类型在:

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

FileConfigurationExtensions 类

您可以轻松验证在您的依赖项中不存在。所以你缺少一个 NuGet 包。原来这个很容易找到:Microsoft.Extensions.Configuration.FileExtensions


以上是.NETCore5下的ConfigurationBuilder中不存在SetBasePath的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>