.NET 업그레이드 도우미 개요

.NET의 새 버전은 일년 내내 릴리스되며, 주요 릴리스는 1년에 한 번입니다. .NET 업그레이드 도우미는 이전 버전의 .NET, .NET Core 및 .NET Framework에서 최신 버전으로 앱을 업그레이드하는 데 도움이 됩니다.

.NET 업그레이드 도우미는 앱을 최신 버전의 .NET으로 업그레이드하는 데 도움을 주기 위해 설계된 Visual Studio 확장 및 명령줄 도구입니다.

.NET 업그레이드 도우미와 관련된 문제는 도움말>피드백 보내기>문제 보고를 선택하여 Visual Studio 내에서 제출할 수 있습니다.

업그레이드 도우미 설치

.NET 업그레이드 도우미는 Visual Studio 확장 또는 .NET 명령줄 도구로 설치할 수 있습니다. 자세한 내용은 .NET 업그레이드 도우미 설치를 참조하세요.

지원되는 언어

다음 코드 언어가 지원됩니다.

  • C#
  • Visual Basic

지원되는 프로젝트

다음 형식의 프로젝트가 지원됩니다.

  • ASP.NET
  • Azure 기능
  • Windows Presentation Foundation
  • Windows Forms
  • 클래스 라이브러리
  • 콘솔 응용 프로그램
  • .NET 네이티브 UWP
  • Xamarin Forms
  • .NET MAUI

업그레이드 경로

지원되는 업그레이드 경로는 다음과 같습니다.

  • NET Framework에서 .NET으로
  • .NET Core에서 .NET으로
  • UWP에서 WinUI 3으로
  • 이전 .NET 버전에서 최신 .NET 버전으로
  • Azure Functions v1-v3에서 v4로 격리됨
  • Xamarin 양식을 .NET MAUI로 변환
    • XAML 파일 변환은 네임스페이스 업그레이드만 지원합니다. 보다 포괄적인 변환을 위해서는 Visual Studio 2022 버전 17.6 이상을 사용합니다.

Visual Studio 확장으로 업그레이드

.NET 업그레이드 도우미 확장을 설치한 후 솔루션 탐색기 창에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 업그레이드를 선택합니다.

주의

소스 제어를 사용하지 않는 경우 업그레이드하기 전에 프로젝트를 백업합니다.

The .NET Upgrade Assistant's Upgrade menu item in Visual Studio.

프로젝트 형식에 따라 다양한 업그레이드 스타일을 제공하는 탭이 열립니다.

  • 현재 위치 프로젝트 업그레이드

    이 옵션은 복사본을 만들지 않고 프로젝트를 업그레이드합니다.

  • 병렬 프로젝트 업그레이드

    원본 프로젝트는 그대로 두고 프로젝트를 복사하고 복사본을 업그레이드합니다.

  • 병렬 증분

    복잡한 웹앱에 적합한 선택입니다. ASP.NET에서 ASP.NET Core로 업그레이드하려면 상당한 작업이 필요하며 때로는 수동 리팩터링이 필요합니다. 이 모드는 기존 .NET Framework 프로젝트 옆에 .NET 프로젝트를 배치하고 .NET 프로젝트에 구현된 엔드포인트를 라우팅하는 동시에 다른 모든 호출은 .NET Framework 애플리케이션으로 전송됩니다.

    이 모드를 사용하면 ASP.NET 또는 라이브러리 앱을 하나씩 천천히 업그레이드할 수 있습니다.

앱이 업그레이드되면 업그레이드와 관련된 프로젝트와 관련된 모든 아티팩트를 보여 주는 상태 화면이 표시됩니다. 각 업그레이드 아티팩트를 확장하여 상태에 대한 자세한 정보를 읽을 수 있습니다. 다음 목록에서는 상태 아이콘에 대해 설명합니다.

  • 채워진 녹색 확인 표시: 아티팩트가 업그레이드되어 성공적으로 완료되었습니다.
  • 채워지지 않은 녹색 확인 표시: 도구가 업그레이드할 아티팩트에 대해 아무 것도 찾지 못했습니다.
  • 노란색 경고 기호: 아티팩트가 업그레이드되었지만 고려해야 할 중요한 정보가 있습니다.
  • 빨간색 X: 아티팩트를 업그레이드하려고 했지만 업그레이드에 실패했습니다.

The .NET Upgrade Assistant's Upgrade results tab in Visual Studio.

또한 업그레이드 도우미가 수행한 작업은 다음 이미지와 같이 업그레이드 도우미 원본 아래의 출력 창에 기록됩니다.

The output window in Visual Studio showing the results from the .NET Upgrade Assistant.

프로젝트를 업그레이드한 후에는 철저하게 테스트해야 합니다.

CLI 도구를 사용하여 업그레이드

.NET 업그레이드 도우미 CLI 도구를 설치한 후 터미널 창을 열고 업그레이드하려는 프로젝트가 포함된 디렉터리로 이동합니다. upgrade-assistant --help 명령을 사용하면 CLI가 제공하는 사용 가능한 옵션을 볼 수 있습니다.

주의

소스 제어를 사용하지 않는 경우 업그레이드하기 전에 프로젝트를 백업합니다.

upgrade-assistant upgrade 명령으로 도구를 실행하면 현재 폴더와 그 아래의 모든 프로젝트가 나열됩니다. CLI 도구는 업그레이드할 프로젝트를 선택하는 대화형 방법을 제공합니다. 화살표 키를 사용하여 항목을 선택하고 Enter 키를 눌러 항목을 실행합니다. 업그레이드하려는 프로젝트를 선택합니다. 이 문서에서 제공하는 예에서는 현재 폴더 아래에 4개의 프로젝트가 있습니다.

 Selected options
───────────────────────────────────────────────────────────
 No options specified, follow steps below to continue

 Steps
─────────────────
 Source project
─────────────────

Which project do you want to upgrade (found 9)?

> MatchingGame (winforms\MatchingGame\MatchingGame.csproj)
  MatchingGame.Logic (winforms\MatchingGame.Logic\MatchingGame.Logic.csproj)
  StarVoteControl (csharp\StarVoteControl\StarVoteControl.csproj)
  WebSiteRatings (csharp\WebSiteRatings\WebSiteRatings.csproj)

  Navigation
    Exit

업그레이드하는 프로젝트에 따라 업그레이드 진행 방법을 지정하는 옵션이 제공될 수 있습니다.

  • 현재 위치 프로젝트 업그레이드

    이 옵션은 복사본을 만들지 않고 프로젝트를 업그레이드합니다.

  • 병렬 프로젝트 업그레이드

    이 옵션은 .NET Framework 프로젝트에만 사용할 수 있습니다. 원본 프로젝트는 그대로 두고 프로젝트를 복사하고 복사본을 업그레이드합니다.

 Selected options
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 Source project     C:\Code\winforms\MatchingGame\MatchingGame.csproj

 Steps
───────────────────────────────
 Source project / Upgrade type
───────────────────────────────

How do you want to upgrade project MatchingGame?

> In-place project upgrade
  Side-by-side project upgrade

  Navigation
    Back
    Exit

이 단계 후에 업그레이드 가능한 대상 프레임워크가 두 개 이상인 경우 대상을 선택합니다.

 Selected options
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 Source project     C:\Code\Work\dotnet\dotnet-docs\docs\core\porting\snippets\upgrade-assistant-wpf-framework\winforms\MatchingGame\MatchingGame.csproj
 Ugrade type        Inplace

 Steps
──────────────────────────────────────────────────
 Source project / Ugrade type / Target framework
──────────────────────────────────────────────────

What is your preferred target framework?

> .NET 6.0 (Supported until November, 2024)
  .NET 7.0 (Supported until May, 2024)
  .NET 8.0 (Try latest preview features)

  Navigation
    Back
    Exit

프로젝트를 업그레이드한 후에는 철저하게 테스트해야 합니다.