当前上下文中不存在名称 WebHost

Posted

技术标签:

【中文标题】当前上下文中不存在名称 WebHost【英文标题】:The name WebHost does not exists in current context 【发布时间】:2018-05-05 02:31:22 【问题描述】:

在 docs.microsoft 上的以下帖子的帮助下,我正在从 ASP.NET Core 1.x 迁移到 v2.0: https://docs.microsoft.com/en-us/aspnet/core/migration/1x-to-2x/

我几乎完成了该帖子中提到的所有更改。但是有一个错误引起了麻烦。

这是我的 Program.cs 文件:

using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Configuration;

namespace MeridiaCoreAPI

    public class Program
    
        public static void Main(string[] args)
        
            BuildWebHost(args).Run();
        

        public static IWebHost BuildWebHost(string[] args) =>
           WebHost.CreateDefaultBuilder(args)
               .UseStartup<Startup>()
            .ConfigureAppConfiguration((hostContext, config) =>
            
            // delete all default configuration providers
            config.Sources.Clear();
                config.AddJsonFile("myconfig.json", optional: true);
            )
               .Build();
    

这是错误信息:

Suppression State
Error   CS0103  The name 'WebHost' does not exist in the current context

任何解决方案、解决方法或提示都将受到高度赞赏。谢谢。

【问题讨论】:

【参考方案1】:

WebHost 类驻留在Microsoft.AspNetCore 程序集,该程序集附带Microsoft.AspNetCore.All NuGet 包。因此,要解决您的问题,请安装此 NuGet 包并将以下 using 指令添加到您的源文件:

using Microsoft.AspNetCore;

【讨论】:

我的集成管理器不希望所有 dll 作为 Microsoft.AspNetCore.All 包含 100 多个程序集来运行基本的 .Net Core 应用程序。有没有办法只包含依赖程序集来构建和运行应用程序? 看看这个 - docs.microsoft.com/en-us/dotnet/core/deploying @ManishDubey 是的。 My answer is below. 需要的包名是Microsoft.AspNetCore。不要使用.All 包,否则会遇到编译问题。【参考方案2】:

由于CodeFuller's answer indicated WebHost 类在程序集Microsoft.AspNetCore 中可用,如果你不需要所有东西,你可以得到包Microsoft.AspNetCore

【讨论】:

以上是关于当前上下文中不存在名称 WebHost的主要内容,如果未能解决你的问题,请参考以下文章

arcengine显示当前上下文中不存在名称怎么办

CS0103: 当前上下文中不存在名称“DataHelper”

C# 当前上下文中不存在名称“Console”

当前上下文中不存在名称

当前上下文不存在名称

编译器错误消息: CS0103: 当前上下文中不存在名称