我已将我的应用升级为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,根据this和this,我在ConfigureLogging()
上面做的事应该没问题。
答案 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
?
我不知道。