ASP.NET Core 3.0:命名空间中不存在类型或命名空间名称“CreateDefaultBuilder”

Chr*_*ris 9 c# .net-core asp.net-core asp.net-core-3.0 .net-core-3.0

我在用什么:

  • .NET 核心 SDK 3.0.100
  • Visual Studio 社区 2019 版本 16.3.2

我创建了一个针对 netcoreapp3.0 的新 ASP.NET Core Web API 项目,但出现以下错误:

The type or namespace name 'CreateDefaultBuilder' does not exist in the namespace 'Template.Host' (are you missing an assembly reference?)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Kir*_*kin 23

再看一下错误信息:

命名空间“Template.Host”中不存在类型或命名空间名称“CreateDefaultBuilder”...

当您Host.CreateDefaultBuilder在 的命名空间中写入时Template.Host,编译器会假定您的意思是Template.Host.CreateDefaultBuilder

有几个选项可以解决这个问题:

  1. using语句嵌套在您的命名空间中:

     namespace Template.Host
     {
         using Microsoft.Extensions.Hosting;
    
         // ...
     }
    
    Run Code Online (Sandbox Code Playgroud)
  2. Microsoft.Extensions.Hosting.Host为命名空间内的类型别名:

     namespace Template.Host
     {
         using Host = Microsoft.Extensions.Hosting.Host;
    
         // ...
     }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用类型的完全限定名称Host

     Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder(args)
    
    Run Code Online (Sandbox Code Playgroud)

Host代表通用主机WebHost在 ASP.NET Core 3.0+ 中更受欢迎。