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

时间:2019-10-05 14:06:15

标签: c# asp.net-core .net-core .net-core-3.0 asp.net-core-3.0

我在用什么:

  • .NET Core SDK 3.0.100
  • Visual Studio Community 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?)

file a feature request

2 个答案:

答案 0 :(得分:3)

再看看错误消息:

  

名称空间'Template.Host'中不存在类型或名称空间名称'CreateDefaultBuilder'...

Host.CreateDefaultBuilderTemplate.Host的命名空间中时,编译器会假设您的意思是Template.Host.CreateDefaultBuilder。至少有以下几种方法可以解决此问题:

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

    namespace Template.Host
    {
        using Microsoft.Extensions.Hosting;
    
        // ...
    }
    
  2. 为您的命名空间内的Microsoft.Extensions.Hosting.Host类型添加别名:

    namespace Template.Host
    {
        using Host = Microsoft.Extensions.Hosting.Host;
    
        // ...
    }
    
  3. 使用Host类型的全名:

    Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder(args)
    

Host代表Generic Host,在ASP.NET Core 3.0+中,它优于WebHost

答案 1 :(得分:1)

更新:我的地位很低,无法对Kirk的帖子发表评论。我不知道Host在3.0中是首选。无论如何,柯克的答案应该是正确的

您应按以下方式使用WebHost(而非主机):

result[] = {9, 12}