Понизить рейтинг проекта MVC с dotnetcore2.1 до dotnet Framework 4.61

#c# #.net #asp.net-mvc #asp.net-core #.net-4.0

#c# #.net #asp.net-mvc #asp.net-core #.net-4.0

Вопрос:

Нам нужно понизить рейтинг проекта MVC с .netcore до .netframework. По этому вопросу я изменил все файлы *.csproj и заменил

 <TargetFramework>netcoreapp2.1</TargetFramework>
with
 <TargetFramework>net461</TargetFramework>.
  

когда я запускаю проект, я не вижу никакой ошибки, но при вызове любого из API я получаю следующее исключение:

 Exception from request 'GET /launch'. Response status code is 500 InternalServerError. Exception: System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.RuntimeAssembly.get_DefinedTypes()
   at Microsoft.AspNetCore.Mvc.Controllers.ControllerFeatureProvider.PopulateFeature(IEnumerable`1 parts, ControllerFeature feature)
   at Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager.PopulateFeature[TFeature](TFeature feature)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionDescriptorProvider.GetControllerTypes()
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionDescriptorProvider.BuildModel()
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionDescriptorProvider.GetDescriptors()
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionDescriptorProvider.OnProvidersExecuting(ActionDescriptorProviderContext context)
   at Microsoft.AspNetCore.Mvc.Internal.ActionDescriptorCollectionProvider.UpdateCollection()
   at Microsoft.AspNetCore.Mvc.Internal.ActionDescriptorCollectionProvider.get_ActionDescriptors()
   at Microsoft.AspNetCore.Mvc.Internal.AttributeRoute.GetTreeRouter()
   at Microsoft.AspNetCore.Mvc.Internal.AttributeRoute.RouteAsync(RouteContext context)
   at Microsoft.AspNetCore.Routing.RouteCollection.<RouteAsync>d__10.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Builder.RouterMiddleware.<Invoke>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.<Invoke>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Ipi.Common.AspNetCore.FaultHandlingMiddleware.<Invoke>d__1.MoveNext()
  

Я считаю, что отсутствует сборка, но не знаю, где и как получить версию сборки, которая вызывает проблему.

Комментарии:

1. Я даже не уверен, что это возможно… Net Core — это не то же самое, что Net Framework

2. Это не «понижение». Это полное переключение фреймворков. Вы не можете просто заменить целевую платформу — структуры проекта, код запуска и всевозможные другие вещи полностью отличаются между .NET Framework и .NET Core. Лучше создать новый проект, а затем перенести любой код, который вы можете перенести в новый проект, и переписать все, что зависит от платформы.

3. P.S. Но зачем вам это нужно делать? Это необычная проблема. Возможно, вам следует подумать об устранении основной причины этого требования, а не пытаться переносить код из новой платформы в более старую.

4. Вы убедились, что все ваши зависимости имеют эквивалент .net Framework? Можете ли вы выполнить восстановление dotnet, и оно будет успешным? Я полностью согласен с ADyson, вы не «понижаете рейтинг», а полностью меняете платформы, и я не могу представить причину, по которой вам это нужно или вы хотите это сделать.