I was following Microsoft's migration guide, but failed. So, instead, I created a new project with .NET 2.2 to establish a clean template, and then tried migrating to .NET Core 3.0. But it once again failed. In the Startup.cs
, the dependency injection cannot find the method services.AddMvc()
.
It seems my code still refers to .NET 2.2 instead of .NET 3.0.
If I run dotnet watch run
, I get the following error:
Application startup exception System.InvalidOperationException:
Endpoint Routing does not support 'IApplicationBuilder.UseMvc(…)'.
To use 'IApplicationBuilder.UseMvc' set
'MvcOptions.EnableEndpointRouting = false' inside
'ConfigureServices(…). at
Microsoft.AspNetCore.Builder.MvcApplicationBuilderExtensions.UseMvc(IApplicationBuilder
app, Action'1 configureRoutes) at
Microsoft.AspNetCore.Builder.MvcApplicationBuilderExtensions.UseMvc(IApplicationBuilder
app) at netmig.Startup.Configure(IApplicationBuilder app,
IHostingEnvironment env) in E:\testapp\netmig\Startup.cs:line 46 at
System.RuntimeMethodHandle.InvokeMethod(Object target, Object[]
arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags
invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object
instance, IApplicationBuilder builder) at
Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>c__DisplayClass4_0.b__0(IApplicationBuilder
builder) at
Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass13_0.b__2(IApplicationBuilder
app) at
Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>c__DisplayClass0_0.g__MiddlewareFilterBuilder|0(IApplicationBuilder
builder) at
Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.b__0(IApplicationBuilder
app) at
Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken
cancellationToken) Unhandled exception.
System.InvalidOperationException: Endpoint Routing does not support
'IApplicationBuilder.UseMvc(…)'. To use 'IApplicationBuilder.UseMvc'
set 'MvcOptions.EnableEndpointRouting = false' inside
'ConfigureServices(…). at
Microsoft.AspNetCore.Builder.MvcApplicationBuilderExtensions.UseMvc(IApplicationBuilder
app, Action'1 configureRoutes) at
Microsoft.AspNetCore.Builder.MvcApplicationBuilderExtensions.UseMvc(IApplicationBuilder
app) at netmig.Startup.Configure(IApplicationBuilder app,
IHostingEnvironment env) in E:\testapp\netmig\Startup.cs:line 46 at
System.RuntimeMethodHandle.InvokeMethod(Object target, Object[]
arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags
invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object
instance, IApplicationBuilder builder) at
Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>c__DisplayClass4_0.b__0(IApplicationBuilder
builder) at
Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass13_0.b__2(IApplicationBuilder
app) at
Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>c__DisplayClass0_0.g__MiddlewareFilterBuilder|0(IApplicationBuilder
builder) at
Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.b__0(IApplicationBuilder
app) at
Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken
cancellationToken) at
Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken
cancellationToken) at
Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost
host, CancellationToken token) at
Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost
host, CancellationToken token) at
Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost
host) at netmig.Program.Main(String[] args) in
E:\testapp\netmig\Program.cs:line 18 watch : Exited with error code
-532462766
The full code I am running can be found on GitHub. My .NET info:
dotnet –info .NET Core SDK (reflecting any global.json): Version:
3.0.100 Commit: 04339c3a26Runtime Environment: OS Name: Windows OS Version:
10.0.18362 OS Platform: Windows RID: win10-x64 Base Path: C:\Program Files\dotnet\sdk\3.0.100\Host (useful for support): Version: 3.0.0 Commit: 7d57652f33
.NET Core SDKs installed:
2.2.401 [C:\Program Files\dotnet\sdk]
3.0.100 [C:\Program Files\dotnet\sdk].NET Core runtimes installed: 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]To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
Best Answer
For v2.2
And for v3
Also make sure your csproj is target .net core 3.0