GitHub Copilot 앱 현대화는 .NET 프로젝트를 최신 버전으로 업그레이드하고 애플리케이션을 Azure로 마이그레이션하는 Visual Studio의 AI 기반 에이전트입니다. 이 문서에서는 구조적 3단계 워크플로인 평가, 계획 및 실행을 사용하여 .NET 애플리케이션을 업그레이드하는 방법에 대해 설명합니다.
현대화 에이전트는 프로젝트 및 종속성을 분석하고, 각 단계에서 자세한 업그레이드 설명서를 만들고, 프로세스 전체에서 코드 수정을 지원합니다. .NET Framework에서 최신 .NET으로의 마이그레이션을 포함하여 이전 .NET 버전에서 최신 버전으로 업그레이드할 수 있습니다.
필수 조건
시작하기 전에 다음 요구 사항이 있는지 확인합니다.
Windows 운영 체제.
Visual Studio 2026 (또는 Visual Studio 2022 버전 17.14.17 이상).
다음 선택적 구성 요소가 사용하도록 설정된 .NET 데스크톱 개발 워크로드:
- GitHub Copilot
- GitHub Copilot 앱 현대화
GitHub Copilot 구독(유료 또는 무료).
GitHub 계정을 사용하여 Visual Studio에 로그인Copilot 액세스 권한이 있는.
중요합니다
구독을 변경하는 경우 Visual Studio를 다시 시작해야 합니다.
코드는 C#으로 작성해야 합니다.
업그레이드 시작
업그레이드를 시작하려면 GitHub Copilot 채팅과 상호 작용하여 현대화 에이전트를 시작합니다.
Visual Studio에서 .NET 프로젝트 또는 솔루션을 엽니다.
다음 방법 중 하나를 사용하여 GitHub Copilot 앱 현대화 에이전트에 액세스합니다.
솔루션 탐색기에서 솔루션 또는 프로젝트를 마우스 오른쪽 단추로 클릭하고 현대화를 선택합니다.
-또는—
GitHub Copilot 채팅 창을 열고 업그레이드 또는 마이그레이션 요청을
@modernize뒤에 입력하세요.에이전트에
@modernize업그레이드 또는 마이그레이션할 내용을 알릴 수 있습니다.
업그레이드를 시작하면 Git 리포지토리에서 작업하는 경우 Copilot에서 새 분기를 만들라는 메시지가 표시됩니다. 그런 다음, 코필로트는 3단계 워크플로를 실행하여 리포지토리의 .github/upgrades 각 단계에 대한 Markdown 파일을 작성합니다. 이전 시도에서 이미 존재하는 경우 .github/upgrades , 코필로트는 계속하거나 새로 시작할지 여부를 묻습니다.
세 단계는 다음과 같습니다.
- 평가 단계 - Copilot는 프로젝트를 검사하여 호환성이 손상되는 변경, 호환성 문제 및 업그레이드 요구 사항을 식별합니다.
- 계획 단계 - Copilot는 모든 문제를 해결하는 방법을 설명하는 자세한 사양을 만듭니다.
- 실행 단계 - Copilot는 계획을 순차 작업으로 분리하고 업그레이드를 수행합니다.
평가 시작 및 결과 검토
평가 단계에서는 프로젝트 구조, 종속성 및 코드 패턴을 검사하여 변경해야 하는 사항을 식별합니다. Copilot는 자동으로 이 단계를 시작하고 파일을 생성하여 assessment.md.github/upgrades에 저장합니다.
평가에는 호환성이 손상되는 변경, API 호환성 문제, 사용되지 않는 패턴 및 업그레이드 범위가 나열되어 있으므로 주의가 필요한 사항을 정확하게 알 수 있습니다. 다음 예제에서는 .NET 6.0에서 .NET 9.0으로 업그레이드하는 ASP.NET Core 프로젝트에 대한 평가의 일부를 보여 줍니다.
# Projects and dependencies analysis
This document provides a comprehensive overview of the projects and their dependencies in the context of upgrading to .NETCoreApp,Version=v10.0.
## Table of Contents
- [Executive Summary](#executive-Summary)
- [Highlevel Metrics](#highlevel-metrics)
- [Projects Compatibility](#projects-compatibility)
- [Package Compatibility](#package-compatibility)
- [API Compatibility](#api-compatibility)
- [Aggregate NuGet packages details](#aggregate-nuget-packages-details)
- [Top API Migration Challenges](#top-api-migration-challenges)
- [Technologies and Features](#technologies-and-features)
- [Most Frequent API Issues](#most-frequent-api-issues)
- [Projects Relationship Graph](#projects-relationship-graph)
- [Project Details](#project-details)
- [MvcMovie.Tests\MvcMovie.Tests.csproj](#mvcmovietestsmvcmovietestscsproj)
- [MvcMovie\MvcMovie.csproj](#mvcmoviemvcmoviecsproj)
- [RazorMovie.Tests\RazorMovie.Tests.csproj](#razormovietestsrazormovietestscsproj)
- [RazorMovie\RazorMovie.csproj](#razormovierazormoviecsproj)
- [WpfMovie.Tests\WpfMovie.Tests.csproj](#wpfmovietestswpfmovietestscsproj)
- [WpfMovie\WpfMovie.csproj](#wpfmoviewpfmoviecsproj)
...
계획을 검토하고 사용자 지정하려면 다음을 수행합니다.
-
assessment.md파일을.github/upgrades에서 엽니다. - 식별된 파괴적 변경과 호환성 문제를 검토합니다.
- 프로젝트에 관련된 컨텍스트 또는 문제를 문서에 추가합니다.
- 코필로트에게 계획 단계로 이동하라고 지시합니다.
계획 시작 및 계획 검토
계획 단계에서는 평가를 모든 문제를 해결하는 방법을 설명하는 자세한 사양으로 변환합니다. 계획을 계속 진행하라고 Copilot에 지시하면 파일을 생성합니다 plan.md.github/upgrades.
이 계획은 업그레이드 전략, 리팩터링 방법, 종속성 업그레이드 경로 및 위험 완화를 문서화합니다. 다음 예제에서는 ASP.NET Core 프로젝트에 대한 계획의 일부를 보여줍니다.
# .NET 10 Upgrade Plan
## Table of Contents
- [Executive Summary](#executive-summary)
- [Migration Strategy](#migration-strategy)
- [Detailed Dependency Analysis](#detailed-dependency-analysis)
- [Project-by-Project Plans](#project-by-project-plans)
- ... <removed to save space> ...
- ...
---
## Executive Summary
### Scenario Description
Upgrade all projects in the MvcMovieNet6 solution from .NET 6 to .NET 10 (Long Term Support). The solution contains:
- **RazorMovie**: ASP.NET Core Razor Pages application (primary focus)
- **MvcMovie**: ASP.NET Core MVC application
- **WpfMovie**: Windows Presentation Foundation desktop application
- **3 Test Projects**: Unit test projects for each application
### Scope & Current State
- **6 projects** requiring framework upgrade (net6.0 → net10.0)
- **1,862 total lines of code** across 54 files
- **16 NuGet packages** (6 require updates, 10 compatible)
- **65 identified issues** (1 security vulnerability, 1 deprecated package, 51 WPF API issues, minor behavioral changes)
- **All projects are SDK-style** (modern project format)
...
계획을 검토하고 사용자 지정하려면 다음을 수행합니다.
.github/upgrades에서plan.md파일을 엽니다.업그레이드 전략 및 종속성 업데이트를 검토합니다.
업그레이드 단계를 조정하거나 필요한 경우 컨텍스트를 추가하도록 계획을 편집합니다.
주의
이 계획은 프로젝트 상호 종속성을 기반으로 합니다. 마이그레이션 경로를 완료할 수 없는 방식으로 계획을 수정하면 업그레이드가 성공하지 못합니다. 예를 들어 Project A가 Project B에 의존하고 있을 때, 업그레이드 계획에서 Project B를 제거하면 Project A의 업그레이드가 실패할 수 있습니다.
코필로트에게 실행 단계로 이동하라고 지시합니다.
실행 시작 및 업그레이드 실행
실행 단계에서는 유효성 검사 조건을 사용하여 계획을 순차적인 구체적인 작업으로 나눕니다. 코필로트에게 실행을 계속하라고 지시하면 .에 tasks.md파일이 생성됩니다.github/upgrades.
작업 목록은 각 작업을 설명하고, Copilot가 성공 여부를 확인하는 방법을 설명합니다. 다음 예제에서는 ASP.NET Core 및 WPF 프로젝트를 포함하는 솔루션에 대한 작업 목록을 보여 있습니다.
# MvcMovieNet6 .NET 10 Upgrade Tasks
## Overview
This document tracks the execution of the MvcMovieNet6 solution upgrade from .NET 6 to .NET 10. All projects will be upgraded simultaneously in a single atomic operation.
**Progress**: 0/3 tasks complete (0%) 
---
## Tasks
### [ ] TASK-001: Verify prerequisites
**References**: Plan §Phase 0
- [ ] (1) Verify .NET 10 SDK installed per Plan §Phase 0
- [ ] (2) .NET 10 SDK meets minimum requirements (**Verify**)
---
### [ ] TASK-002: Atomic framework and package upgrade with compilation fixes
**References**: Plan §Phase 1, Plan §Package Update Reference, Plan §Breaking Changes Catalog, Plan §Project-by-Project Plans
- [ ] (1) Update TargetFramework to net10.0 in MvcMovie.csproj, MvcMovie.Tests.csproj, RazorMovie.csproj, RazorMovie.Tests.csproj per Plan §Phase 1
- [ ] (2) Update TargetFramework to net10.0-windows in WpfMovie.csproj, WpfMovie.Tests.csproj per Plan §Phase 1
- [ ] (3) All project files updated to target framework (**Verify**)
- [ ] (4) Update package references per Plan §Package Update Reference (MvcMovie: EF Core 10.0.1, Code Generation 10.0.0; RazorMovie: HtmlSanitizer 9.0.889 security fix)
- [ ] (5) All package references updated (**Verify**)
- [ ] (6) Restore all dependencies across solution
- [ ] (7) All dependencies restored successfully (**Verify**)
- [ ] (8) Build solution and fix all compilation errors per Plan §Breaking Changes Catalog (focus: BinaryFormatter removal in WpfMovie, WPF control API binary incompatibilities, UseExceptionHandler behavioral changes, HtmlSanitizer API changes)
- [ ] (9) Solution builds with 0 errors (**Verify**)
- [ ] (10) Commit changes with message: "TASK-002: Complete atomic upgrade to .NET 10 (all projects, packages, and compilation fixes)"
---
### [ ] TASK-003: Run full test suite and validate upgrade
**References**: Plan §Phase 2, Plan §Testing & Validation Strategy
- [ ] (1) Run tests in MvcMovie.Tests, RazorMovie.Tests, and WpfMovie.Tests projects
- [ ] (2) Fix any test failures (reference Plan §Breaking Changes Catalog for common issues: HtmlSanitizer behavior, BinaryFormatter replacement, framework behavioral changes)
- [ ] (3) Re-run all tests after fixes
- [ ] (4) All tests pass with 0 failures (**Verify**)
- [ ] (5) Commit test fixes with message: "TASK-003: Complete testing and validation for .NET 10 upgrade"
업그레이드를 실행하려면 다음을 수행합니다.
- 부조종사에게 업그레이드를 시작하라고 지시합니다.
- Copilot가 작업 상태를 업데이트할 때
tasks.md파일을 검토하여 진행 상황을 모니터링합니다. - 코필로트가 해결할 수 없는 문제가 발생하면 요청된 도움말을 제공합니다.
- Copilot가 사용자의 개입을 통해 학습하고 업그레이드를 계속하도록 합니다.
이 도구는 프로세스의 모든 부분에 대해 Git 커밋을 만들므로 변경 내용을 쉽게 롤백하거나 변경 내용에 대한 자세한 정보를 가져올 수 있습니다.
업그레이드 확인
업그레이드가 완료되면 Copilot는 채팅 응답의 다음 단계를 표시하여 프로세스 후 수행할 작업을 안내합니다. 파일을 검토하여 tasks.md 모든 단계의 상태를 확인합니다. 이 도구는 업그레이드 프로세스의 모든 부분에 대해 Git 커밋을 만들므로 변경 내용을 쉽게 롤백하거나 변경 내용에 대한 자세한 정보를 가져올 수 있습니다.
다음 예제에서는 ASP.NET Core 프로젝트 업그레이드에 대한 완료된 작업을 보여 줍니다.
# MvcMovieNet6 .NET 10 Upgrade Tasks
## Overview
This document tracks the execution of the MvcMovieNet6 solution upgrade from .NET 6 to .NET 10. All projects will be upgraded simultaneously in a single atomic operation.
**Progress**: 3/3 tasks complete (100%) 
---
## Tasks
### [✓] TASK-001: Verify prerequisites *(Completed: 2025-12-12 21:09)*
**References**: Plan §Phase 0
- [✓] (1) Verify .NET 10 SDK installed per Plan §Phase 0
- [✓] (2) .NET 10 SDK meets minimum requirements (**Verify**)
...
업그레이드를 확인하려면 다음을 수행합니다.
- 에서 최종 작업 상태를 검토합니다
tasks.md. - 실패한 테스트 또는 컴파일 오류를 해결합니다.
- 업데이트된 모든 NuGet 패키지가 애플리케이션과 호환되는지 확인합니다.
- 애플리케이션을 철저히 테스트하여 업그레이드가 성공했는지 확인합니다.
- 업그레이드된 .NET 버전에서 사용할 수 있는 새로운 기능 및 향상된 기능을 적용합니다.
관련 콘텐츠
.NET