我遵循了Microsoft的迁移指南,但是失败了。因此,我改为使用.NET 2.2创建了一个新项目以建立干净的模板,然后尝试迁移到.NET Core 3.0。但是它再次失败了。在中Startup.cs
,依赖项注入找不到方法services.AddMvc()
。
看来我的代码仍然引用.NET 2.2,而不是.NET 3.0。
如果运行dotnet watch run
,则会出现以下错误:
应用程序启动异常System.InvalidOperationException:端点路由不支持'IApplicationBuilder.UseMvc(...)'。要使用'IApplicationBuilder.UseMvc',请在'ConfigureServices(...)中设置'MvcOptions.EnableEndpointRouting = false'。在E:的netmig.Startup.Configure(IApplicationBuilder应用程序,IHostingEnvironment env)的Microsoft.AspNetCore.Builder.MvcApplicationBuilderExtensions.UseMvc(IApplicationBuilder应用程序)在Microsoft.AspNetCore.Builder.MvcApplicationBuilderExtensions.UseMvc(IApplicationBuilder应用程序,操作'1 configureRoutes) testapp \ netmig \ Startup.cs:System.RuntimeMethodHandle.InvokeMethod(对象目标,Object []参数,签名sig,布尔构造函数,布尔wrapExceptions)位于System.Reflection.RuntimeMethodInfo.Invoke(对象obj,BindingFlags invokeAttr,Binder)处的第46行黏合剂
在Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(对象实例,IApplicationBuilder构建器)在Microsoft.AspNetCore.Hosting.ConfigureBuilder。<> c__DisplayClass4_0.b__0(IApplicationBuilder构建器)在Microsoft.AspNetCore.Hosting.GenericWebHostBuilder。<> c__DisplayClass13_0.b__2( Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter。<> c__DisplayClass0_0.g__MiddlewareFilterBuilder | 0(IApplicationBuilder builder)在Microsoft.AspNetCore.HostFilteringStartupFilter。<> c__DisplayClass0_0.b__0(IApplicationBuilder app)在Microsoft.AspNetricWeb上的Host。 StartAsync(CancellationToken cancelledToken)未处理的异常。System.InvalidOperationException:端点路由不支持“ IApplicationBuilder.UseMvc(...)”。要使用'IApplicationBuilder。UseMvc'在'ConfigureServices(...)中设置'MvcOptions.EnableEndpointRouting = false'。在E:的netmig.Startup.Configure(IApplicationBuilder应用程序,IHostingEnvironment env)的Microsoft.AspNetCore.Builder.MvcApplicationBuilderExtensions.UseMvc(IApplicationBuilder应用程序)在Microsoft.AspNetCore.Builder.MvcApplicationBuilderExtensions.UseMvc(IApplicationBuilder应用程序,操作'1 configureRoutes) testapp \ netmig \ Startup.cs:System.RuntimeMethodHandle.InvokeMethod(对象目标,Object []参数,签名sig,布尔构造函数,布尔wrapExceptions)位于System.Reflection.RuntimeMethodInfo.Invoke(对象obj,BindingFlags invokeAttr,Binder)处的第46行资料夹,Object []参数,CultureInfo文化)
在Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(对象实例,IApplicationBuilder构建器)在Microsoft.AspNetCore.Hosting.ConfigureBuilder。<> c__DisplayClass4_0.b__0(IApplicationBuilder构建器)在Microsoft.AspNetCore.Hosting.GenericWebHostBuilder。<> c__DisplayClass13_0.b__2( Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter。<> c__DisplayClass0_0.g__MiddlewareFilterBuilder | 0(IApplicationBuilder builder)在Microsoft.AspNetCore.HostFilteringStartupFilter。<> c__DisplayClass0_0.b__0(IApplicationBuilder app)在Microsoft.AspNetricWeb上的Host。 Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellingToken),位于Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions。Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost主机,CancellationToken令牌),位于Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost主机),位于netmig.Program.Main(字符串[] args) ),在E:\ testapp \ netmig \ Program.cs:line 18中观看:退出,错误代码为-532462766
我正在运行的完整代码可以在GitHub上找到。我的.NET信息:
dotnet --info .NET Core SDK(反映任何global.json):版本:
3.0.100提交:04339c3a26运行时环境:OS名称:Windows OS版本:10.0.18362操作系统平台:Windows RID:win10-x64基本路径:C:\ Program Files \ dotnet \ sdk \ 3.0.100 \
主机(可用于支持):版本:3.0.0提交:7d57652f33
安装的.NET Core SDK:2.2.401 [C:\ Program Files \ dotnet \ sdk] 3.0.100 [C:\ Program Files \ dotnet \ sdk]
已安装.NET Core运行时:Microsoft.AspNetCore.All 2.2.6 [C:\ Program Files \ dotnet \ shared \ Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.2.6 [C:\ Program Files \ dotnet \ shared \ Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.0.0 [C:\ Program Files \ dotnet \ shared \ Microsoft.AspNetCore.App] Microsoft.NETCore.App 2.2.6 [C:\ Program Files \ dotnet \ shared \ Microsoft.NETCore.App] Microsoft.NETCore.App 3.0.0 [C:\ Program Files \ dotnet \ shared \ Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.0.0 [C:\ Program Files \ dotnet \ shared \ Microsoft.WindowsDesktop.App]要安装其他.NET Core运行时或SDK:https :
//aka.ms/dotnet-download
对于v2.2
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseMvc();
}
对于v3
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
还要确保您的csproj是目标.net core 3.0
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句