ASP.NET Core 3.0: 命名空间中不存在类型或命名空间名称 'CreateDefaultBuilder'
ASP.NET Core 3.0: The type or namespace name 'CreateDefaultBuilder' does not exist in the namespace
我在用什么:
- .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?)
更新:我的地位如此低下,无法对柯克的 post 发表评论。我不知道 Host 是 3.0 中的首选。无论如何,柯克的答案应该是正确的
您应该按如下方式使用 WebHost(而非主机):
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
再看一下错误信息:
The type or namespace name 'CreateDefaultBuilder' does not exist in the namespace 'Template.Host'...
当您在 Template.Host
的命名空间中编写 Host.CreateDefaultBuilder
时,编译器假定您的意思是 Template.Host.CreateDefaultBuilder
。
有几个选项可以解决这个问题:
在您的命名空间内嵌套 using
语句:
namespace Template.Host
{
using Microsoft.Extensions.Hosting;
// ...
}
在您的命名空间内为 Microsoft.Extensions.Hosting.Host
类型设置别名:
namespace Template.Host
{
using Host = Microsoft.Extensions.Hosting.Host;
// ...
}
使用 Host
类型的完全限定名称:
Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder(args)
Host
表示ASP.NET Core 3.0+中的Generic Host and is preferred over WebHost
。
我在用什么:
- .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?)
更新:我的地位如此低下,无法对柯克的 post 发表评论。我不知道 Host 是 3.0 中的首选。无论如何,柯克的答案应该是正确的
您应该按如下方式使用 WebHost(而非主机):
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
再看一下错误信息:
The type or namespace name 'CreateDefaultBuilder' does not exist in the namespace 'Template.Host'...
当您在 Template.Host
的命名空间中编写 Host.CreateDefaultBuilder
时,编译器假定您的意思是 Template.Host.CreateDefaultBuilder
。
有几个选项可以解决这个问题:
在您的命名空间内嵌套
using
语句:namespace Template.Host { using Microsoft.Extensions.Hosting; // ... }
在您的命名空间内为
Microsoft.Extensions.Hosting.Host
类型设置别名:namespace Template.Host { using Host = Microsoft.Extensions.Hosting.Host; // ... }
使用
Host
类型的完全限定名称:Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder(args)
Host
表示ASP.NET Core 3.0+中的Generic Host and is preferred over WebHost
。