ConfigureLogging MissingMethodException with 2.0.0 Preview 1

时间:2017-06-11 17:01:22

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

我已将我的应用升级为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();
    }

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

1 个答案:

答案 0 :(得分:0)

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

2.0.0-preview1-final个包(如上所述)依赖于.NETCoreApp 2.0。这在我的类库中造成了一些麻烦(显然,它们不是应用程序)。以前,他们只依赖于.NET Standard。我从夜间构建Feed中删除了2.0.0-preview3-*个包,因为它们再次取消了对.NETCoreApp.NET Standard的依赖,但保留了2.0.0-preview1-final个引用。网络项目。

不同版本的软件包是导致错误的原因。我已将任何Microsoft.AspNetCore.*个包移到解决方案中的项目目标2.0.0-preview3-*,并且可以正常运行。

为什么它专门针对MissingMethodException ConfigureLogging构建了WebHost

我不知道。