c# - 当前上下文中不存在名称 Host
问题描述
我正在关注本教程https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/working-with-sql?view=aspnetcore-3.0&tabs=visual-studio我得到了以下错误消息:名称主机在当前上下文中不存在
这是我的 Program.cs 文件的样子
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using MvcMovie.Data;
using MvcMovie.Models;
using System;
namespace MvcMovie
{
public class Program
{
public static void Main(string[] args)
{
var host = CreateHostBuilder(args).Build();
using (var scope = host.Services.CreateScope())
{
var services = scope.ServiceProvider;
try
{
SeedData.Initialize(services);
}
catch (Exception ex)
{
var logger = services.GetRequiredService<ILogger<Program>>();
logger.LogError(ex, "An error occurred seeding the DB.");
}
}
host.Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
}
Host.CreateDefaultBuilder(args) 下有一条红线
解决方案
您引用的教程设置为使用 3.0,但 .csproj 的内容显示您使用的是 2.1。Host.CreateDefaultBuilder
在 2.1 中不可用,这使您有两个选择:
- 切换到教程的 2.1 版本,它使用
WebHost.CreateDefaultBuilder
. 这可以使用 ASP.NET Core 文档页面的“版本”选择器来完成。 - 使用本教程的 3.0(或 3.1)版本并相应地配置您的项目。为此,您只需要适当版本的 SDK 和 Visual Studio。
如果可以,请使用 3.1 版本。这是推荐的 LTS 版本。
推荐阅读
- node.js - Nodejs模块导出,等待函数完成
- powershell - Powershell 中的快速注册表搜索器
- excel - 为什么 FormulaR1C1 将不需要的括号放入公式中?
- performance - 微服务和低延迟传输
- nunit - 如何修复“程序集不包含测试或未找到正确的测试驱动程序”。
- pfsense - 我可以将输入流量生成的输出流量路由到与输入流量不同的接口吗?
- angular - PayPal交易买家和商家
- excel - 用户正在编辑单元格时禁用 excel 插件的任务窗格
- java - Android 循环遍历嵌套的 hashmap
- vue.js - 如何在NUXT中进行过渡等待目标页面隐藏根页面