.NET Core迁移解决方案中的WebHostBuilder.Build()MissingMethodException

时间:2017-04-06 13:56:36

标签: c# asp.net .net-core dotnet-cli

我正在迁移使用.NET Core SDK 1.0.0-preview2-1-003177构建的解决方案,因为我想在Visual Studio 2017中使用它。我使用.NET Core SDK 1.0中的dotnet migrate命令。 1,它很顺利,它编译。当我使用IIS Express运行Web部件时,包含

的经典 Program.cs
var host = new WebHostBuilder()
    .UseKestrel()
    .UseContentRoot(Directory.GetCurrentDirectory())
    .UseIISIntegration()
    .UseStartup<Startup>()
    .Build();

host.Run();

Build()在此异常

时崩溃
  

System.MissingMethodException:&#39;找不到方法:   &#39; System.IServiceProvider   Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(Microsoft.Extensions.DependencyInjection.IServiceCollection)&#39;&#39;

我根本找不到原因。

2 个答案:

答案 0 :(得分:5)

它看起来像你的一些依赖项,没有更新到正确的版本。它可以是旧版本或新版本。您可以创建一个新项目(dotnet new)并验证csproj文件上的软件包版本。 99%的错误是由版本不匹配引起的。

答案 1 :(得分:1)

这件事发生在我身上,因为我过于渴望并安装了太多的EntityFrameworkCore包。

我有

Microsoft.EntityFrameworkCore 2.0.0-preview1-final
Microsoft.EntityFrameworkCore.SqlServer 1.1.2

我删除了第一个,所以我留下了

Microsoft.EntityFrameworkCore.SqlServer 1.1.2

然后错误就消失了。