как перенести dotnet core 2.2 webapi в dotnet core 3.0 - PullRequest
0 голосов
/ 26 сентября 2019

Я следовал этому руководству здесь https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-3.0&tabs=visual-studio#mvc-service-registration

, но не смог, поэтому я создаю новый проект с .net 2.2 (пустой и свежий с одним контроллером), а затем пытаюсь перейти на 3.0.И у меня снова произошел сбой, особенно в Startup.cs, DI не может обнаружить службы метода. AddMvc ();

Кажется, мой код все еще ссылается на .net 2.2 вместо .net 3.0

если я запускаю .net watch run

Я получил эту ошибку:

Исключение при запуске приложения System.InvalidOperationException: Маршрутизация конечной точки не поддерживает 'IApplicationBuilder.UseMvc (...)',Чтобы использовать «IApplicationBuilder.UseMvc», установите «MvcOptions.EnableEndpointRouting = false» внутри «ConfigureServices (...).в Microsoft.AspNetCore.Builder.MvcApplicationBuilderExtensions.UseMvc (приложение IApplicationBuilder, действие 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)<br> at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder) at Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>c__DisplayClass4_0.<Build>b__0(IApplicationBuilder builder) at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass13_0.<UseStartup>b__2(IApplicationBuilder app) at Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>c__DisplayClass0_0.<Configure>g__MiddlewareFilterBuilder|0(IApplicationBuilder builder) at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>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) в Microsoft.AspNetCore.Builder.MvcApplicationBuilderExtensions.UseMvc (приложение IApplicationBuilder для среды приложений (приложение IapplicationBuilder) для приложения IAppinBuilder) в сети Интернет.: \ testapp \ netmig \ Startup.cs: строка 46 в System.RuntimeMethodHandle.InvokeMethod (Object target, Object [] arguments, сигнатура сигнатуры, логический конструктор, Boolean wrapExceptions) в System.Reflection.RuntimeMethodInfo.Invoke (Object obj, invindingrgs), Связыватель, параметры Object [], культура CultureInfo)
в Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke (экземпляр объекта, построитель IApplicationBuilder) в Microsoft.AspNetCore.Hosting.ConfigureBuilder. <> C__DisplayClass4_0.ppBil0в Microsoft.AspNetCore.Hosting.GenericWebHostBuilder. <> c__DisplayClass13_0.b__2 (приложение IApplicationBuilder) в Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter. <> c__DisplayClass0_0.g__MiddlewareFilterBuilder | 0 (построитель IApplicationBuilder) в Microsoft.AspNetCore.HostFilteringStartupFilter. <> c__DisplayClass0_0.b__0 (приложение приложения.Internal.Host.StartAsync (CancellationToken cancellationToken) в Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync (хост IHost, токен CancellationToken) в Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsynkenHostingAbstractionsHostExtensions.Run (хост IHost) на netmig.Program.Main (аргументы String []) в E: \ testapp \ netmig \ Program.cs: строка 18 watch: выход с кодом ошибки -532462766

Код, который у меня есть, находится в https://github.com/callmeblessed/netmig

Моя .net информация

dotnet --info .NET Core SDK (отражает любой global.json): Версия:
3.0.100 Фиксация: 04339c3a26

Среда выполнения: Имя ОС: Версия ОС Windows: 10.0.18362 Платформа ОС: RID Windows: win10-x64 Базовый путь: C: \ Program Files \ dotnet \ sdk \ 3.0.100 \

Хост (полезно для поддержки): Версия: 3.0.0 Фиксация: 7d57652f33

. Установлено SDK Core SDK: 2.2.401 [C: \ Program Files \ dotnet \ sdk] 3.0.100 [C: \Установленные программные файлы \ 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

1 Ответ

1 голос
/ 26 сентября 2019

Для 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...