WebHostBuilder.Build() MissingMethodException in .NET Core 迁移方案
WebHostBuilder.Build() MissingMethodException in .NET Core migrated solution
我正在迁移使用 .NET Core SDK 1.0.0-preview2-1-003177 构建的解决方案,因为我想在 Visual Studio 2017 年使用它。我使用 .NET Core 中的 dotnet migrate 命令SDK 1.0.1,运行良好,可以编译。当我 运行 使用 IIS Express 的 Web 部件时,经典 Program.cs 包含
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
在 Build() 时崩溃,但出现此异常
System.MissingMethodException: 'Method not found:
'System.IServiceProvider
Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(Microsoft.Extensions.DependencyInjection.IServiceCollection)'.'
完全找不到原因
您的某些依赖项似乎没有更新到正确的版本。它可以是旧版本或新版本。您可以创建一个新项目 ( dotnet new ) 并验证 csproj 文件中的包版本。 99% 的错误是由版本不匹配引起的。
这发生在我身上,因为我太急了,安装了太多的 EntityFrameworkCore 包。
我有
Microsoft.EntityFrameworkCore 2.0.0-preview1-final
Microsoft.EntityFrameworkCore.SqlServer 1.1.2
我删除了第一个,所以剩下
Microsoft.EntityFrameworkCore.SqlServer 1.1.2
然后错误消失了。
我正在迁移使用 .NET Core SDK 1.0.0-preview2-1-003177 构建的解决方案,因为我想在 Visual Studio 2017 年使用它。我使用 .NET Core 中的 dotnet migrate 命令SDK 1.0.1,运行良好,可以编译。当我 运行 使用 IIS Express 的 Web 部件时,经典 Program.cs 包含
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
在 Build() 时崩溃,但出现此异常
System.MissingMethodException: 'Method not found: 'System.IServiceProvider Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(Microsoft.Extensions.DependencyInjection.IServiceCollection)'.'
完全找不到原因
您的某些依赖项似乎没有更新到正确的版本。它可以是旧版本或新版本。您可以创建一个新项目 ( dotnet new ) 并验证 csproj 文件中的包版本。 99% 的错误是由版本不匹配引起的。
这发生在我身上,因为我太急了,安装了太多的 EntityFrameworkCore 包。
我有
Microsoft.EntityFrameworkCore 2.0.0-preview1-final
Microsoft.EntityFrameworkCore.SqlServer 1.1.2
我删除了第一个,所以剩下
Microsoft.EntityFrameworkCore.SqlServer 1.1.2
然后错误消失了。