Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GitHub Copilot modernisering är en AI-baserad agent som uppgraderar .NET projekt till nyare versioner och migrerar program till Azure. Den här artikeln beskriver hur du uppgraderar dina .NET-program med ett strukturerat arbetsflöde i tre steg: utvärdering, planering och körning.
Moderniseringsagenten analyserar dina projekt och beroenden, skapar detaljerad uppgraderingsdokumentation i varje steg och hjälper till med kodkorrigeringar under hela processen. Agenten stöder uppgradering från äldre .NET versioner till de senaste, inklusive uppgraderingar från .NET Framework till moderna .NET.
Förutsättningar
Konfigurera GitHub Copilot modernisering i utvecklingsmiljön innan du påbörjar en uppgradering. För installationssteg, se Installera GitHub Copilot uppdatering.
Initiera uppgraderingen
Starta en uppgradering genom att använda agenten modernize-dotnet i Copilot:
Öppna ditt .NET projekt eller din lösning i utvecklingsmiljön.
Starta agenten med någon av följande metoder:
-
Visual Studio: Högerklicka på lösningen eller projektet i Prieskumník riešení och välj Modernize. Du kan också öppna fönstret GitHub Copilot Chat och skriva
@Modernize. -
Visual Studio Code: Öppna panelen GitHub Copilot Chat och skriv
@modernize-dotnet. -
GitHub Copilot CLI: Skriv
@modernize-dotnetföljt av din uppgraderings- eller migreringsbegäran. -
GitHub.com: Använd kodningsagenten
modernize-dotnetpå lagringsplatsen.
-
Visual Studio: Högerklicka på lösningen eller projektet i Prieskumník riešení och välj Modernize. Du kan också öppna fönstret GitHub Copilot Chat och skriva
Tala om för agenten vad som ska uppgraderas eller migreras.
När du startar uppgraderingen samlar Copilot in information om förinitiering: målramverksversionen, Git-förgreningsstrategin och arbetsflödesläget (automatiskt eller guidat av dig). Copilot utvärderar sedan projektet och kör ett arbetsflöde i tre steg och skriver Markdown-filer för varje fas under .github/upgrades/{scenarioId} på lagringsplatsen. Värdet {scenarioId} är en unik identifierare för uppgraderingstypen, till exempel dotnet-version-upgrade. Om .github/upgrades/{scenarioId} redan finns från ett tidigare försök frågar Copilot om du vill fortsätta eller börja om på nytt.
De tre stegen är:
- Utvärderingssteg. Copilot undersöker projektet, presenterar strategibeslut för din granskning och sparar bekräftade beslut. Anpassa utvärderingen innan du fortsätter.
- Planeringssteg. Copilot skapar en detaljerad specifikation med stegen för att nå måluppgradningen.
- Exekveringsfas. Copilot delar upp planen i sekventiella uppgifter och utför uppgraderingen.
Granska utvärderingen
Utvärderingen undersöker projektstrukturen, beroendena och kodmönstren för att identifiera vad som behöver ändras. Copilot startar utvärderingen automatiskt och genererar en assessment.md-fil i .github/upgrades/{scenarioId}.
Utvärderingen visar ändringar som kan orsaka fel, API-kompatibilitetsproblem, inaktuella mönster och omfattningen av uppgraderingarna. I följande exempel visas en del av en utvärdering för en ASP.NET Core-projektuppgradering från .NET 6.0 till .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)
...
Så här granskar och anpassar du utvärderingen:
-
assessment.mdÖppna filen i.github/upgrades/{scenarioId}. - Granska identifierade icke-bakåtkompatibla ändringar och kompatibilitetsproblem.
- Lägg till projektspecifik kontext eller problem i dokumentet.
- Beordra Copilot att gå vidare till planeringssteget.
Granska uppgraderingsalternativ
Efter utvärderingen utvärderar Copilot din lösning och presenterar beslut om uppgraderingsstrategi för din granskning. Agenten rekommenderar en metod baserat på projektets struktur och sparar bekräftade beslut till upgrade-options.md i .github/upgrades/{scenarioId}.
Alternativen omfattar vanligtvis:
- Uppgraderingsstrategi. Nedifrån och upp (Lövprojekt först), uppifrån och ned (Applikation först), eller allt på en gång (Alla projekt i ett svep).
- Projekts uppgraderingsmetod Omskrivning på plats eller parallelluppgradering.
- Teknikmodernisering. Om du vill uppgradera tekniker som Entity Framework (EF6 till EF Core), beroendeinmatning, loggning och konfiguration.
- Pakethantering. Om du vill använda central pakethantering.
- Kompatibilitetshantering. Så här hanterar du API:er som inte stöds, inkompatibla paket och plattformsspecifika funktioner.
Granska de föreslagna alternativen och bekräfta eller åsidosätta dem. Beordra Copilot att gå vidare till planeringssteget.
Börja planera och granska planen
Planeringssteget konverterar utvärderingen och dina bekräftade uppgraderingsalternativ till en detaljerad specifikation som förklarar hur du löser alla problem. När du uppmanar Copilot att fortsätta planera genereras en plan.md-fil i .github/upgrades/{scenarioId}. Agenten skapar också en scenario-instructions.md fil som lagrar inställningar, beslut och anpassade instruktioner för uppgraderingen.
Planen dokumenterar uppgraderingsstrategier, refaktoriseringsmetoder, sökvägar för beroendeuppgradering och riskreducering. I följande exempel visas en del av en plan för ett ASP.NET Core projekt:
# .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)
...
Så här granskar och anpassar du planen:
plan.mdÖppna filen i.github/upgrades/{scenarioId}.Granska uppgraderingsstrategierna och beroendeuppdateringarna.
Redigera planen för att justera uppgraderingsstegen eller lägga till kontext efter behov.
Försiktighet
Planen är beroende av projektinterdependenser. Uppgraderingen lyckas inte om du ändrar planen så att uppgraderingsprocessen inte kan fullbordas. Om Project A till exempel är beroende av Project B och du tar bort Project B från uppgraderingsplanen kan uppgraderingen Project A misslyckas.
Be Copilot att flytta till utförandesteget.
Starta utförandet och genomför uppgraderingen
Utförandefasen delar upp planen i sekventiella, konkreta arbetsuppgifter med valideringskriterier. När du uppmanar Copilot att fortsätta körningen genereras en tasks.md-fil i .github/upgrades/{scenarioId}.
Uppgiftslistan beskriver varje uppgift och hur Copilot validerar framgång. I följande exempel visas en uppgiftslista för en lösning som innehåller ASP.NET Core och WPF projekt:
# 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"
Så här kör du uppgraderingen:
- Säg till Copilot att starta uppgraderingen.
- Övervaka förloppet genom att granska filen
tasks.mdnär Copilot uppdaterar aktivitetsstatus. - Om Copilot stöter på ett problem som det inte kan lösa kan du ange den begärda hjälpen.
- Baserat på dina beslut och ändringar anpassar Copilot sin strategi till de återstående uppgifterna och fortsätter uppgraderingen.
Copilot genomför ändringar enligt den Git-strategi som du konfigurerade under förinitieringen: per aktivitet, per grupp av aktiviteter eller i slutet.
Verifiera uppgraderingen
När uppgraderingen är klar visar Copilot rekommenderade nästa steg i chattsvaret.
tasks.md Granska filen i .github/upgrades/{scenarioId} för status för varje steg.
I följande exempel visas slutförda uppgifter för en ASP.NET Core projektuppgradering:
# 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**)
...
Så här verifierar du uppgraderingen:
- Granska den slutliga uppgiftsstatusen i
tasks.md. - Åtgärda eventuella misslyckade tester eller kompileringsfel.
- Kontrollera att alla uppdaterade NuGet-paket är kompatibla med ditt program.
- Testa programmet noggrant för att kontrollera att uppgraderingen har slutförts.
- Använd nya funktioner och förbättringar som är tillgängliga i den uppgraderade .NET versionen.
Relaterat innehåll
- Vad innebär modernisering av GitHub Copilot?
- Installera GitHub Copilot-uppgradering
- Centrala begrepp
- Bästa praxis
- Felsöka GitHub Copilot-moderniseringen
- Vanliga frågor och svar om modernisering av GitHub Copilot