Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
GitHub Copilot uaktualnienie to agent oparty na sztucznej inteligencji, który uaktualnia projekty .NET do nowszych wersji. W tym artykule przedstawiono proces uaktualniania aplikacji .NET za pomocą ustrukturyzowanego przepływu pracy trzyetapowego: oceny, planowania i wykonywania.
Agent analizuje projekty i zależności, tworzy szczegółową dokumentację uaktualniania na każdym etapie i pomaga w poprawkach kodu w całym procesie. Agent obsługuje uaktualnianie ze starszych wersji .NET do najnowszej wersji, w tym uaktualnienia z platformy .NET Framework do nowoczesnych .NET.
Wymagania wstępne
Przed rozpoczęciem uaktualniania skonfiguruj GitHub Copilot uaktualniania w środowisku projektowym. Aby uzyskać instrukcje instalacji, zobacz Instalowanie uaktualnienia GitHub Copilot.
Inicjowanie uaktualnienia
Aby rozpocząć uaktualnianie, wykonaj następujące kroki:
Uruchom agenta przy użyciu jednej z następujących metod:
-
Visual Studio: kliknij prawym przyciskiem myszy rozwiązanie lub projekt w Eksplorator rozwiązań i wybierz Modernize. Alternatywnie otwórz okno usługi GitHub Copilot Chat i wpisz
@Modernize. -
Visual Studio Code: Otwórz GitHub Copilot Chat panel i wpisz
@upgrade. -
GitHub Copilot CLI: Wpisz
@upgrade, a następnie polecenie uaktualnienia lub migracji. -
GitHub aplikacja Copilot: w selektorze Agent wybierz
Upgrade.
-
Visual Studio: kliknij prawym przyciskiem myszy rozwiązanie lub projekt w Eksplorator rozwiązań i wybierz Modernize. Alternatywnie otwórz okno usługi GitHub Copilot Chat i wpisz
Poinformuj agenta, co należy uaktualnić lub zmigrować.
Po rozpoczęciu uaktualniania Copilot zbiera informacje wstępne: docelową wersję platformy, strategię rozgałęziania Git i tryb przepływu pracy (automatyczny lub kierowany przez Ciebie). Copilot następnie ocenia twój projekt i uruchamia trzyetapowy proces, pisząc pliki Markdown dla każdego etapu w obszarze .github/upgrades/{scenarioId} w twoim repozytorium. Wartość {scenarioId} jest unikatowym identyfikatorem typu uaktualnienia, takim jak dotnet-version-upgrade. Jeśli .github/upgrades/{scenarioId} już istnieje z wcześniejszej próby, Copilot pyta, czy kontynuować, czy rozpocząć od nowa.
Trzy etapy to:
- Etap oceny. Copilot analizuje twój projekt, przedstawia decyzje strategiczne do przeglądu i zapisuje potwierdzone decyzje. Dostosuj ocenę przed kontynuowaniem.
- Etap planowania. Copilot tworzy szczegółową specyfikację z krokami umożliwiającymi osiągnięcie docelowego uaktualnienia.
- Etap wykonywania. Copilot dzieli plan na zadania sekwencyjne i wykonuje uaktualnienie.
Przegląd oceny
Ocena sprawdza strukturę projektu, zależności i wzorce kodu, aby zidentyfikować, co należy zmienić. Copilot automatycznie uruchamia ocenę i generuje plik assessment.md w .github/upgrades/{scenarioId}.
Ocena zawiera listę zmian niezgodnych, problemy ze zgodnością interfejsu API, przestarzałe wzorce i zakres aktualizacji. Poniższy przykład przedstawia część oceny projektu ASP.NET Core aktualizowanego z wersji .NET 6.0 do .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)
...
Aby przejrzeć i dostosować ocenę:
- Otwórz plik
assessment.mdw.github/upgrades/{scenarioId}. - Przejrzyj zidentyfikowane zmiany powodujące niezgodność i problemy zgodności.
- Dodaj kontekst lub obawy specyficzne dla projektu do dokumentu.
- Poinformuj Copilot, aby przeszedł do etapu planowania.
Przejrzyj opcje uaktualniania
Po przeprowadzeniu oceny Copilot ocenia rozwiązanie i przedstawia do przeglądu decyzje dotyczące strategii uaktualnienia. Agent zaleca podejście bazujące na strukturze twojego projektu i zapisuje potwierdzone decyzje w upgrade-options.md w .github/upgrades/{scenarioId}.
Opcje zazwyczaj obejmują:
- Strategia aktualizacji. Oddolne (najpierw projekty szczegółowe), odgórne (najpierw aplikacja) lub wszystkie naraz (wszystkie projekty w jednym etapie).
- Podejście do modernizacji projektu. Ponowne zapisywanie w miejscu lub uaktualnianie równoległe.
- Modernizacja technologii. Czy uaktualnić technologie, takie jak Entity Framework (EF6 do EF Core), iniekcja zależności, rejestrowanie i konfiguracja.
- Zarządzanie pakietami. Czy wdrożyć centralne zarządzanie pakietami.
- Obsługa zgodności. Jak radzić sobie z nieobsługiwanymi interfejsami API, niezgodnymi pakietami i funkcjonalnościami specyficznymi dla platformy.
Przejrzyj proponowane opcje i potwierdź lub przesłoń je. Poinformuj Copilot, aby przeszedł do etapu planowania.
Rozpoczynanie planowania i przeglądanie planu
Etap planowania konwertuje ocenę i potwierdzone opcje uaktualniania na szczegółową specyfikację, która wyjaśnia, jak rozwiązać każdy problem. Gdy poinformujesz Copilot o kontynuowaniu planowania, generuje on plik plan.md w .github/upgrades/{scenarioId}. Agent również tworzy plik scenario-instructions.md, który przechowuje preferencje, decyzje i niestandardowe instrukcje dotyczące aktualizacji.
Plan dokumentuje strategie uaktualniania, metody refaktoryzacji, ścieżki uaktualniania zależności i środki zaradcze ryzyka. Poniższy przykład przedstawia część planu dla projektu 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)
...
Aby przejrzeć i dostosować plan:
Otwórz plik
plan.mdw.github/upgrades/{scenarioId}.Przejrzyj strategie uaktualniania i aktualizacje zależności.
Edytuj plan, aby dostosować kroki uaktualniania lub dodać kontekst zgodnie z potrzebami.
Caution
Plan zależy od współzależności projektu. Uaktualnienie nie powiedzie się, jeśli zmodyfikujesz plan w sposób uniemożliwiający ukończenie ścieżki uaktualnienia. Jeśli na przykład program Project A zależy od projektu B i usuniesz program Project B z planu uaktualniania, uaktualnienie projektu A może zakończyć się niepowodzeniem.
Poinformuj Copilota, aby przeszedł do fazy wykonawczej.
Rozpocznij wykonanie i przeprowadź uaktualnienie
Etap wykonywania dzieli plan na sekwencyjne, konkretne zadania z kryteriami weryfikacji. Gdy poinformujesz Copilot o kontynuowaniu wykonywania, generuje plik tasks.md w lokalizacji .github/upgrades/{scenarioId}.
Lista zadań opisuje każde zadanie i sposób, w jaki Copilot weryfikuje powodzenie. W poniższym przykładzie przedstawiono listę zadań dla rozwiązania zawierającego projekty ASP.NET Core i 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"
Aby uruchomić uaktualnienie:
- Poinformuj Copilot, aby rozpoczął aktualizację.
- Monitoruj postęp, przeglądając plik
tasks.mdw miarę jak Copilot aktualizuje stany zadań. - Jeśli Copilot napotka problem, którego nie można rozwiązać, podaj żądaną pomoc.
- Na podstawie Twoich decyzji i zmian Copilot dostosowuje swoją strategię do pozostałych zadań i kontynuuje uaktualnianie.
Copilot zatwierdza zmiany zgodnie ze strategią Git skonfigurowaną podczas wstępnej inicjalizacji: na zadanie, na grupę zadań lub na końcu.
Weryfikowanie uaktualnienia
Po zakończeniu uaktualniania Copilot pokazuje zalecane następne kroki w odpowiedzi na czat. Przejrzyj plik w pliku tasks.md , .github/upgrades/{scenarioId} aby uzyskać stan każdego kroku.
W poniższym przykładzie przedstawiono ukończone zadania uaktualniania 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**)
...
Aby zweryfikować uaktualnienie:
- Przejrzyj stan ostatniego zadania w pliku
tasks.md. - Rozwiąż wszelkie nieudane testy lub błędy kompilacji.
- Upewnij się, że wszystkie zaktualizowane pakiety NuGet są zgodne z aplikacją.
- Dokładnie przetestuj aplikację, aby sprawdzić, czy uaktualnienie zakończyło się pomyślnie.
- Zastosuj nowe funkcje i ulepszenia dostępne w uaktualnionej wersji platformy .NET.