Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
GitHub Copilot modernizace je agent využívající AI, který upgraduje projekty .NET na novější verze a migruje aplikace do Azure. Tento článek vás provede upgradem aplikací .NET strukturovaným třífázovým pracovním postupem: posouzení, plánování a provádění.
Agent modernizace analyzuje vaše projekty a závislosti, v každé fázi vytvoří podrobnou dokumentaci k upgradu a pomůže s opravami kódu v průběhu procesu. Agent podporuje upgrade ze starších verzí .NET na nejnovější, včetně upgradů z rozhraní .NET Framework na moderní .NET.
Požadavky
Před zahájením upgradu nastavte modernizování GitHub Copilot ve vašem vývojovém prostředí. Postup instalace najdete v části Modernizace GitHub Copilot.
Zahajte aktualizaci
Pokud chcete spustit upgrade, použijte agenta modernize-dotnet v Copilot:
Otevřete projekt nebo řešení .NET ve vývojovém prostředí.
Spusťte agenta některou z těchto metod:
-
Visual Studio: Klikněte pravým tlačítkem na řešení nebo projekt v Průzkumník řešení a vyberte Modernize. Nebo otevřete okno GitHub Copilot Chat a zadejte
@Modernize. -
Visual Studio Code: Otevřete panel GitHub Copilot Chat a zadejte
@modernize-dotnet. -
GitHub Copilot CLI: Zadejte
@modernize-dotneta potom požadavek na upgrade nebo migraci. -
GitHub.com: Použijte agenta kódování
modernize-dotnetv úložišti.
-
Visual Studio: Klikněte pravým tlačítkem na řešení nebo projekt v Průzkumník řešení a vyberte Modernize. Nebo otevřete okno GitHub Copilot Chat a zadejte
Sdělete agentovi, co chcete upgradovat nebo migrovat.
Při spuštění upgradu Copilot shromažďuje informace o předběžné inicializaci: verze cílového rámce, strategie větvení Gitu a režim pracovního postupu (automatický nebo řízený vámi). Copilot pak vyhodnocuje váš projekt a spustí třífázový pracovní postup a zapíše soubory Markdownu pro každou fázi do .github/upgrades/{scenarioId} ve vašem úložišti. Hodnota {scenarioId} je jedinečný identifikátor pro typ upgradu, například dotnet-version-upgrade. Pokud .github/upgrades/{scenarioId} již existuje z předchozího pokusu, Copilot se zeptá, jestli chcete pokračovat nebo začít znovu.
Tři fáze jsou:
- Fáze posouzení Copilot prozkoumá váš projekt, prezentuje rozhodnutí o strategii pro kontrolu a ukládá potvrzená rozhodnutí. Před pokračováním přizpůsobte posouzení.
- Fáze plánování Copilot vytvoří podrobnou specifikaci s kroky pro dosažení cílového upgradu.
- Fáze provádění. Copilot rozdělí plán na postupné úlohy a provede upgrade.
Kontrola posouzení
Posouzení prozkoumá strukturu projektu, závislosti a vzory kódu a zjistí, co se má změnit. Copilot automaticky spustí posouzení a vygeneruje soubor v assessment.md.github/upgrades/{scenarioId}.
Posouzení uvádí zásadní změny, problémy s kompatibilitou rozhraní API, zastaralé vzory a obor upgradu. Následující příklad ukazuje část posouzení aktualizace projektu ASP.NET Core z .NET 6.0 na .NET 10.0:
# 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)
...
Kontrola a přizpůsobení posouzení:
- Otevřete soubor
assessment.mdv.github/upgrades/{scenarioId}. - Projděte si zjištěné zásadní změny a problémy s kompatibilitou.
- Přidejte do dokumentu kontext nebo obavy specifické pro projekt.
- Řekněte Copilotovi, aby pokračoval do fáze plánování.
Kontrola možností upgradu
Po posouzení Copilot vyhodnocuje vaše řešení a prezentuje rozhodnutí o strategii upgradu pro vaši kontrolu. Agent doporučuje přístup založený na struktuře projektu a ukládá potvrzená rozhodnutí do upgrade-options.md v .github/upgrades/{scenarioId}.
Mezi možnosti obvykle patří:
- Strategie upgrade Zdola nahoru (první dílčí projekty), shora dolů (první aplikace) nebo vše najednou (všechny projekty najednou).
- Přístup k upgradu projektu. Přepsání přímo na místě nebo souběžné vylepšení
- Modernizace technologií. Zda upgradovat technologie, jako je Entity Framework (EF6 na EF Core), injektáž závislostí, protokolování a konfigurace
- Správa balíčků. Zda přijmout centrální správu balíčků.
- Zpracování kompatibility. Jak řešit nepodporovaná rozhraní API, nekompatibilní balíčky a funkce specifické pro platformu
Zkontrolujte navrhované možnosti a potvrďte je nebo změňte. Řekněte Copilotovi, aby pokračoval do fáze plánování.
Zahájení plánování a kontrola plánu
Fáze plánování převede posouzení a potvrzené možnosti upgradu na podrobnou specifikaci, která vysvětluje, jak vyřešit všechny problémy. Když Copilot řeknete, že chcete pokračovat v plánování, vygeneruje soubor plan.md v .github/upgrades/{scenarioId}. Agent také vytvoří scenario-instructions.md soubor, který ukládá předvolby, rozhodnutí a vlastní pokyny pro upgrade.
Plán dokumentuje strategie upgradu, přístupy refaktoringu, cesty upgradu závislostí a zmírnění rizik. Následující příklad ukazuje část plánu pro projekt 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)
...
Kontrola a přizpůsobení plánu:
Otevřete soubor
plan.mdv.github/upgrades/{scenarioId}.Zkontrolujte strategie upgradu a aktualizace závislostí.
Upravte plán a upravte kroky upgradu nebo podle potřeby přidejte kontext.
Upozornění
Plán závisí na závislostech mezi projekty. Upgrade nebude úspěšný, pokud plán upravíte způsobem, který brání dokončení cesty upgradu. Pokud například Project A závisí na Project B a odeberete Project B z plánu upgradu, upgrade Project A může selhat.
Řekněte Copilotovi, aby přešel do fáze provádění.
Zahájit spouštění a provést upgrade
Fáze provádění rozdělí plán na postupné konkrétní úlohy s ověřovacími kritérii. Když řeknete Copilotu, aby přešel k provedení, vygeneruje soubor tasks.md v .github/upgrades/{scenarioId}.
Seznam úkolů popisuje každý úkol a způsob, jakým Copilot ověřuje úspěch. Následující příklad ukazuje seznam úkolů pro řešení obsahující projekty ASP.NET Core a WPF (Windows Presentation Foundation):
# 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"
Pro spuštění upgradu:
- Řekněte Copilotovi, aby zahájil upgrade.
- Sledujte průběh kontrolou souboru
tasks.md, když Copilot aktualizuje stav úkolů. - Pokud Copilot narazí na problém, který nedokáže vyřešit, zadejte požadovanou nápovědu.
- Na základě vašich rozhodnutí a změn Copilot přizpůsobuje svou strategii v závislosti na zbývajících úkolech a pokračuje v upgradu.
Copilot potvrdí změny podle strategie Gitu, kterou jste nakonfigurovali během předběžné inicializace: na každou úlohu, na skupinu úkolů nebo na konci.
Ověřte upgrade
Po dokončení upgradu Copilot zobrazí doporučené další kroky v odpovědi chatu. Zkontrolujte soubor tasks.md v .github/upgrades/{scenarioId} pro stav každého kroku.
Následující příklad ukazuje dokončené úkoly pro upgrade projektu 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**)
...
Ověřte upgrade:
- Zkontrolujte stav posledního úkolu v
tasks.md. - Vyřešte všechny neúspěšné testy nebo chyby kompilace.
- Ujistěte se, že všechny aktualizované balíčky NuGet jsou kompatibilní s vaší aplikací.
- Důkladně otestujte aplikaci a ověřte, že upgrade proběhl úspěšně.
- Použijte nové funkce a vylepšení dostupná v upgradované verzi .NET.