Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A GitHub Copilot modernizálás egy AI-alapú ügynök, amely frissíti a .NET projekteket újabb verziókra, és az alkalmazásokat áttelepíti az Azure felhőplatformra. Ez a cikk bemutatja, hogy a .NET-alkalmazások egy strukturált, háromszintű munkafolyamattal frissíthetők: értékelés, tervezés és végrehajtás.
A modernizálási ügynök elemzi a projekteket és a függőségeket, részletes frissítési dokumentációt hoz létre minden szakaszban, és segít a kódjavításokban a folyamat során. Az ügynök támogatja a régebbi .NET verziókról a legújabb verzióra való frissítést, beleértve a .NET-keretrendszerről a modern .NET való frissítést.
Előfeltételek
A frissítés megkezdése előtt állítsa be GitHub Copilot modernizálást a fejlesztési környezetben. A telepítés lépéseit a Install GitHub Copilot modernizálás című témakörben találja.
A frissítés kezdeményezése
A Copilotban a modernize-dotnet alkalmazás használatával kezdje meg a frissítést:
Nyissa meg a .NET projektet vagy megoldást a fejlesztési környezetben.
Indítsa el az ügynököt az alábbi módszerek egyikével:
-
Visual Studio: Kattintson a jobb gombbal a megoldásra vagy projektre a Megoldáskezelő és válassza a Modernize lehetőséget. Vagy nyissa meg a GitHub Copilot Chat ablakot, és írja be a
@Modernize. -
Visual Studio Code: Nyissa meg a GitHub Copilot Chat panelt, és írja be a
@modernize-dotnet. -
GitHub Copilot parancssori felület: Írja be a
@modernize-dotnet, majd a frissítési vagy migrálási kérést. -
GitHub.com: Használja a
modernize-dotnetkódolóügynököt az adattárban.
-
Visual Studio: Kattintson a jobb gombbal a megoldásra vagy projektre a Megoldáskezelő és válassza a Modernize lehetőséget. Vagy nyissa meg a GitHub Copilot Chat ablakot, és írja be a
Mondja el az ügynöknek, hogy mit frissítsen vagy migráljon.
A frissítés indításakor Copilot összegyűjti az inicializálás előtti információkat: a cél-keretrendszer verzióját, a Git elágaztatási stratégiáját és a munkafolyamat-módot (automatikus vagy Ön által irányított). Copilot ezután kiértékeli a projektet, és futtat egy háromfázisú munkafolyamatot, amelyben Markdown-fájlokat ír az egyes fázisokhoz a .github/upgrades/{scenarioId} az adattárban. Az {scenarioId} érték a frissítés típusának egyedi azonosítója, például dotnet-version-upgrade. Ha .github/upgrades/{scenarioId} már létezik egy korábbi kísérletből, Copilot megkérdezi, hogy folytatja-e a műveletet, vagy kezdjen-e újra.
A három szakasz a következő:
- Értékelési szakasz. Copilot megvizsgálja a projektet, stratégiai döntéseket mutat be véleményezésre, és menti a megerősített döntéseket. A folytatás előtt testre szabhatja az értékelést.
- Tervezési szakasz. Copilot létrehoz egy részletes specifikációt a célfrissítés eléréséhez szükséges lépésekkel.
- Végrehajtási szakasz. Copilot szekvenciális tevékenységekre bontja a tervet, és végrehajtja a frissítést.
Az értékelés áttekintése
Az értékelés megvizsgálja a projektstruktúrát, a függőségeket és a kódmintákat, hogy megállapítsa, mit kell módosítania. Copilot automatikusan elindítja az értékelést, és létrehoz egy assessment.md fájlt .github/upgrades/{scenarioId}.
Az értékelés felsorolja a kompatibilitástörő változásokat, az API-kompatibilitási problémákat, az elavult mintákat és a frissítési hatókört. Az alábbi példa egy ASP.NET Core projekt 6.0-ról .NET .NET 10.0-ra való frissítésének egy részét mutatja be:
# 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)
...
Az értékelés áttekintése és testreszabása:
- Nyissa meg a
assessment.mdfájlt.github/upgrades/{scenarioId}. - Tekintse át az észlelt megszakító változásokat és kompatibilitási problémákat.
- Projektspecifikus környezet vagy problémák hozzáadása a dokumentumhoz.
- Kérje meg a Copil-ot, hogy lépjen a tervezési szakaszra.
Frissítési beállítások áttekintése
Az értékelés után Copilot kiértékeli a megoldást, és frissítési stratégiai döntéseket hoz a felülvizsgálathoz. Az ügynök a projekt struktúráján alapuló megközelítést javasol, és a megerősített döntéseket a upgrade-options.md.github/upgrades/{scenarioId}-ba menti.
A lehetőségek általában a következők:
- Frissítési stratégia. Alulról felfelé (elsőként részprojektek), felülről lefelé (alkalmazásközpontú) vagy egyszerre (minden projekt együtt egy menetben).
- Projektfrissítési megközelítés. Helyszíni átírás vagy egymás melletti frissítés.
- Technológia modernizálása. Az olyan technológiák frissítése, mint az Entity Framework (EF6-ról EF Core-ra), a függőséginjektálás, a naplózás és a konfiguráció.
- Csomagkezelés. A központi csomagkezelés bevezetése.
- Kompatibilitás kezelése. Nem támogatott API-k, nem kompatibilis csomagok és platformspecifikus funkciók kezelése.
Tekintse át a javasolt beállításokat, és erősítse meg vagy bírálja felül őket. Kérje meg a Copil-ot, hogy lépjen a tervezési szakaszra.
A tervezés megkezdése és a terv áttekintése
A tervezési szakasz az értékelést és a megerősített frissítési lehetőségeket részletes specifikációvá alakítja, amely elmagyarázza, hogyan oldható meg minden probléma. Amikor azt mondja a Copilot, hogy folytassa a tervezést, egy fájlt létrehoz a plan.md fájlban .github/upgrades/{scenarioId}. Az ügynök létrehoz egy scenario-instructions.md fájlt is, amely a frissítéshez szükséges beállításokat, döntéseket és egyéni utasításokat tárolja.
A terv a frissítési stratégiákat, a megközelítések újrabontását, a függőségek frissítési útvonalait és a kockázatcsökkentéseket dokumentálja. Az alábbi példa egy ASP.NET Core projekt tervének egy részét mutatja be:
# .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)
...
A terv áttekintése és testreszabása:
Nyissa meg a
plan.mdfájlt.github/upgrades/{scenarioId}.Tekintse át a frissítési stratégiákat és a függőségi frissítéseket.
Módosítsa a tervet a frissítési lépések igazításához vagy adjon hozzá kontextust, ha szükséges.
Caution
A terv a projektközi függéstől függ. A frissítés nem sikerül, ha úgy módosítja a tervet, hogy megakadályozza a frissítési útvonal befejezését. Ha például Project AProject B függ, és eltávolítja Project B a frissítési tervből, előfordulhat, hogy az Project A frissítése sikertelen lesz.
Mondja meg Copilot, hogy a végrehajtási szakaszba lépjen
Indítsa el a végrehajtást, és futtassa a frissítést
A végrehajtási szakasz szekvenciális, konkrét tevékenységekre bontja a tervet érvényesítési feltételekkel. Amikor a Copilotnak azt mondja, hogy folytassa a végrehajtást, az létrehoz egy tasks.md fájlt .github/upgrades/{scenarioId}.
A feladatlista ismerteti az egyes tevékenységeket, és azt, hogy Copilot hogyan érvényesíti a sikert. Az alábbi példa egy ASP.NET Core és WPF projekteket tartalmazó megoldás feladatlistáját mutatja be:
# 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"
A frissítés futtatása:
- Mondja meg a Copilotnak, hogy kezdje el a frissítést.
- Ellenőrizze az előrehaladást a
tasks.mdfájl átnézésével, miközben a Copilot frissíti a feladat állapotait. - Ha Copilot olyan problémába ütközik, amely nem oldható meg, adja meg a kért segítséget.
- A döntések és a változások alapján Copilot a stratégiáját a fennmaradó feladatokhoz igazítja, és folytatja a frissítést.
Copilot az előzetes inicializálás során konfigurált Git-stratégia szerint véglegesíti a módosításokat: tevékenységenként, tevékenységcsoportonként vagy a végén.
A frissítés ellenőrzése
Amikor a frissítés befejeződik, Copilot a csevegési válasz ajánlott következő lépéseit jeleníti meg. Tekintse át a tasks.md fájlt minden .github/upgrades/{scenarioId} lépés állapotának megtekintéséhez.
Az alábbi példa egy ASP.NET Core projektfrissítés befejezett tevékenységeit mutatja be:
# 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**)
...
A frissítés ellenőrzése:
- Tekintse át a végleges feladat állapotát a következőben: .
tasks.md - A sikertelen tesztek vagy fordítási hibák elhárítása.
- Győződjön meg arról, hogy az összes frissített NuGet-csomag kompatibilis az alkalmazással.
- A frissítés sikerességének ellenőrzéséhez alaposan tesztelje az alkalmazást.
- A frissített .NET verzióban elérhető új funkciók és fejlesztések alkalmazása.