ASP.NET Core 3.0 이전 완벽 한 피 갱 안내

머리말
.NET Core 3.0 은.NET Conf 총회 에서 공식 발 표 될 예정 이 며,오늘 까지 9 개의 미리 보기 버 전 을 발 표 했 으 며,변경 도 적지 않 았 다.지속 적 인 관심 이 없 었 기 때문에 오늘 은 앞의 오픈 소스 의 동태WebApi 프로젝트를.NET Core 3.0 으로 옮 기 는 데 많은 시간 이 걸 렸 다.제 가 이전 과정 에서 만난 구 덩이 를 공유 해 드 리 겠 습 니 다.이전 버 전 은 현재 Release 최신 버 전.NET Core 2.2 에서.NET Core 3.0 Preview 9 로 변경 되 었 습 니 다.
2.ASP.NET 코어 프로젝트 이전
공식 이전 문서:ASP.NET Core 2.2 에서 3.0 으로 이전이 공식 문 서 는 비교적 상세 하지만 일부 내용 은 쓰 여 있 지 않 습 니 다.
1.프레임 워 크 버 전 변경
TargetFramework 버 전 변경netcoreapp3.0
2.Nuget 패키지 제거
모든 Nuget 패키지 제거

나머지 Nuget 패 키 지 를.NET Core 3.0 버 전 지원 으로 업데이트
3.프로그램 변경

 public class Program
 {
  public static void Main(string[] args)
  {
   CreateHostBuilder(args).Build().Run();
  }

  public static IHostBuilder CreateHostBuilder(string[] args) =>
   Host.CreateDefaultBuilder(args)
    .ConfigureWebHostDefaults(webBuilder =>
    {
     webBuilder.UseStartup<Startup>();
    });
 }

4.Startup 변경
Configure Services 방법:services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);services.AddControllers()(WebApi)/services.AddControllersWithViews();(MVC)로 변경

Configure 방법:
1.이 방법 에서 Host 환경 정보 인터페이스 유형 을 얻 고IHostingEnvironmentIWebHostEnvironment로 변경 합 니 다.

2.app.UseMVc 변경:
WebApi:

      app.UseRouting();

      app.UseAuthorization();

      app.UseEndpoints(endpoints =>
      {
        endpoints.MapControllers();
      });
MVC:

      app.UseRouting();

      app.UseAuthorization();

      app.UseEndpoints(endpoints =>
      {
        endpoints.MapControllerRoute(
          name: "default",
          pattern: "{controller=Home}/{action=Index}/{id?}");
      });
JSon 구성 요소 에 대하 여
ASP.NET Core 3.0 은 기본적으로 제거Newtonsoft.Json되 었 고 마이크로소프트 가 스스로 실현 한System.Text.Json을 사 용 했 습 니 다.Newtonsoft.JSon 으로 바 꾸 려 면 다음 과 같은 두 단계 가 있 습 니 다.
1.Nuget 패키지 설치:

Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson
2.등록

services.AddControllers().AddNewtonsoftJson();
3.라 이브 러 리(Class Library Net Standard 2.0)프로젝트 이전
ASP.NET Core 3.0 의 패키지 메커니즘 변경 으로 인해 현재 nuget 설치Microsoft.AspNetCore.All또는Microsoft.AspNetCore.App3.0 버 전,그리고 그들 이 포함 하 는 대부분의 Nuget 패키지 도 nuget 을 통 해 설치 할 수 없습니다(3.0 에 대응 하 는 버 전 없 음).2.2 버 전의 nuget 패 키 지 를 인용 했다 면 실행 에 오류 가 발생 할 수 있 습 니 다.원 팩 이.NET Core SDK 에 포 함 된 것 은 우리 의 라 이브 러 리 프로젝트 가 AspNetCore 관련 구성 요소 에 의존 하면 프로젝트 목표 프레임 워 크 를.NET Standard 로 계속 설정 할 수 없고.NET Core 3.0 으로 만 설정 할 수 있다 는 것 을 의미한다.ASP.NET Core 3.0 only run on.NET Core 때문이다.
패키지 메커니즘 변경 원인:https://github.com/aspnet/AspNetCore/issues/3608

1.프레임 워 크 버 전 변경

2.Nuget 패키지 업데이트
Microsoft.AspNetCore 를 제거 합 니 다.*.NET Core 3.0 버 전이 없습니다.예 를 들 어:

FrameworkReference(PackageReference 가 아 닌)참조 추가:

끝나다
주제:ASP.NET Core 는 2.2 까지.NET Framework 와.NET Core 에서 동시에 실행 할 수 있 지만 ASP.NET Core 3.0 부터.NET Core 만 지원 합 니 다.
관련 자료:A first look at changes coming in ASP.NET Core 3.0
위 에서 말 한 변경 은 마이크로소프트 정부 에서 모두 이 유 를 설명 하고 있다.사실은 더 좋아 지기 위해 변경 하고 예전 의 단점 을 보완 하기 위해 서 이다.단지 이렇게 오랫동안 사용 한 코어 에 있어 서 는 좀 괴 롭 지만 받 아들 일 수 있다.더 좋 은.NET 코 어 를 위해 서 이다.
총결산
이상 은 이 글 의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기