当前上下文中不存在名称为“Host”的内容。

3
我正在按照这个教程进行学习:https://learn.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/working-with-sql?view=aspnetcore-3.0&tabs=visual-studio,但是出现了以下错误信息: "The Name Host does not exist in the current context"
下面是我的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) 下面有一条红线。


请尝试使用 WebHost。 - Train
当我这样做的时候,我在 WebHost.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }); 中的 ConfigureWebHostDefaults 下面得到了一个红色线条。 - Patrik Gustafsson
1
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp2.1</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore.App" /> <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.1.2" PrivateAssets="All" /> <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.10" /> </ItemGroup> </Project> - Patrik Gustafsson
你正在使用EF Core工具吗? - Train
我不这么认为。我正在使用Entity框架。 - Patrik Gustafsson
显示剩余2条评论
1个回答

4
你所参考的教程是使用3.0版本的,但你的.csproj文件显示你正在使用2.1版本。在2.1中不支持Host.CreateDefaultBuilder方法,因此你有两个选择:
  1. 切换到2.1版本的教程,使用WebHost.CreateDefaultBuilder方法。这可以通过ASP.NET Core文档页面上的"版本"选择器完成。
  2. 使用3.0(或3.1)版本的教程并相应地配置你的项目。为此,你只需要适当版本的SDK和Visual Studio。
如果可以的话,使用3.1版本,这是推荐的LTS版本。

他们似乎已经删除了针对低于 3.0 版本的 ASP.Net Core 的教程版本,而且 Visual Studio 2017 不支持 3.0 版本,因此无法为 VS 2017 用户提供教程支持。 - Sam Hobbs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接