【问题标题】:ConfigureLogging MissingMethodException with 2.0.0 Preview 1ConfigureLogging MissingMethodException with 2.0.0 Preview 1
【发布时间】:2017-06-12 22:57:20
【问题描述】:

我已将我的应用升级到2.0.0-preview1-final,并且在dotnet run 上收到以下信息:

未处理的异常:System.MissingMethodException:找不到方法:“Microsoft.AspNetCore.Hosting.IWebHostBuilder Microsoft.AspNetCore.Hosting.IWebHostBuilder.ConfigureLogging(System.Action`2)”。 在 Microsoft.AspNetCore.Hosting.WebHostBuilderExtensions.ConfigureLogging(IWebHostBuilder hostBuilder, Action'2 configureLogging)

这是我的Main()

public static void Main(string[] args)
    {
        var host = new WebHostBuilder()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .ConfigureAppConfiguration((context, config) =>
            {
                var env = context.HostingEnvironment;

                config.SetBasePath(env.ContentRootPath);
                config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                    .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);

                config.AddEnvironmentVariables();

                if (args != null)
                    config.AddCommandLine(args);
            })
            .ConfigureLogging((factory) => {
                factory.AddConsole();
                factory.AddDebug();
            })
            .UseKestrel()
            .UseIISIntegration()
            .UseStartup<Startup>()
            .Build();

        host.Run();
    }

如果我根据thisthis 正确阅读release notes from GitHub,那么我在上面对ConfigureLogging() 所做的应该没问题。

【问题讨论】:

  • 您是否也在使用 .NET CLI (SDK) 2.0 preview1?例如。 dotnet --version 打印什么?
  • 是的。 dotnet --version 返回2.0.0-preview1-005977

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


【解决方案1】:

我的解决方案中有 3 个项目;我的应用程序和两个类库。在我的类库中,我引用了几个 AspNetCore 包(例如 Microsoft.AspNetCore.Http.Abstractions)。

2.0.0-preview1-final 包(如上面提到的)依赖于.NETCoreApp 2.0。这在我的类库中引起了一些麻烦(显然,它们不是应用程序)。以前,它们仅依赖于.NET Standard。我从每晚构建提要中删除了2.0.0-preview3-* 包,因为它们再次取消了对.NETCoreApp 和目标.NET Standard 的依赖,但是在我的Web 项目中保留了2.0.0-preview1-final 引用。

不同版本的软件包是导致错误的原因。我已将任何 Microsoft.AspNetCore.* 包移动到解决方案中我的项目中的目标 2.0.0-preview3-* 并且它有效。

为什么它专门在WebHost 构建上将MissingMethodException 用于ConfigureLogging

我不知道。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    • 2018-02-20
    • 1970-01-01
    • 2016-09-16
    相关资源
    最近更新 更多