Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
GitHub Copilot modernisation est un agent alimenté par l’IA qui met à niveau .NET projets vers des versions plus récentes et migre les applications vers Azure. Cet article vous guide tout au long de la mise à niveau de vos applications .NET avec un workflow structuré en trois étapes : évaluation, planification et exécution.
L’agent de modernisation analyse vos projets et dépendances, crée une documentation détaillée sur la mise à niveau à chaque étape et aide à résoudre les correctifs de code tout au long du processus. L’agent prend en charge la mise à niveau des versions antérieures de .NET vers la dernière version, notamment les mises à niveau de .NET Framework vers les .NET modernes.
Prerequisites
Configurez GitHub Copilot modernisation dans votre environnement de développement avant de commencer une mise à niveau. Pour connaître les étapes d’installation, consultez Installer GitHub Copilot modernisation.
Lancer la mise à niveau
Pour démarrer une mise à niveau, utilisez l’agent modernize-dotnet dans Copilot :
Ouvrez votre projet ou solution .NET dans votre environnement de développement.
Démarrez l’agent à l’aide de l’une des méthodes suivantes :
-
Visual Studio : cliquez avec le bouton droit sur la solution ou le projet dans Solution Explorer et sélectionnez Modernize. Ou ouvrez la fenêtre GitHub Copilot Chat et tapez
@Modernize. -
Visual Studio Code : ouvrez le panneau GitHub Copilot Chat et tapez
@modernize-dotnet. -
GitHub Copilot CLI : tapez
@modernize-dotnetsuivi de votre demande de mise à niveau ou de migration. -
GitHub.com : utilisez l’agent de codage
modernize-dotnetdans votre référentiel.
-
Visual Studio : cliquez avec le bouton droit sur la solution ou le projet dans Solution Explorer et sélectionnez Modernize. Ou ouvrez la fenêtre GitHub Copilot Chat et tapez
Indiquez à l’agent ce qu’il faut mettre à niveau ou migrer.
Lorsque vous démarrez la mise à niveau, Copilot collecte des informations de pré-initialisation : la version du framework cible, la stratégie de branchement Git et le mode flux de travail (automatique ou guidé par vous). Copilot évalue ensuite votre projet et exécute un flux de travail en trois étapes, en rédigeant des fichiers Markdown pour chaque étape dans .github/upgrades/{scenarioId} de votre référentiel. La {scenarioId} valeur est un identificateur unique pour le type de mise à niveau, tel que dotnet-version-upgrade. Si .github/upgrades/{scenarioId} existe déjà à partir d’une tentative antérieure, Copilot vous demande s’il faut continuer ou démarrer à nouveau.
Les trois étapes sont les suivantes :
- Phase d’évaluation. Copilot examine votre projet, présente les décisions de stratégie pour votre examen et enregistre les décisions confirmées. Personnalisez l’évaluation avant de continuer.
- Phase de planification. Copilot crée une spécification détaillée avec les étapes permettant d’atteindre la mise à niveau cible.
- Étape d’exécution. Copilot divise le plan en tâches successives et réalise la mise à niveau.
Passer en revue l’évaluation
L’évaluation examine la structure, les dépendances et les modèles de code de votre projet pour identifier les besoins de modification. Copilot démarre automatiquement l’évaluation et génère un fichier assessment.md dans .github/upgrades/{scenarioId}.
L’évaluation répertorie les changements cassants, les problèmes de compatibilité des API, les modèles déconseillés et l’étendue de mise à niveau. L’exemple suivant montre une partie d’une évaluation d’une mise à niveau d’un projet ASP.NET Core de .NET 6.0 vers .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)
...
Pour passer en revue et personnaliser l’évaluation :
- Ouvrez le
assessment.mdfichier dans.github/upgrades/{scenarioId}. - Passez en revue les modifications critiques identifiées et les problèmes de compatibilité.
- Ajoutez un contexte ou des préoccupations spécifiques au projet au document.
- Demandez à Copilot de passer à l'étape de planification.
Passer en revue les options de mise à niveau
Après l’évaluation, Copilot évalue votre solution et présente les décisions de stratégie de mise à niveau pour votre révision. L’agent recommande une approche basée sur la structure de votre projet et enregistre les décisions confirmées dans upgrade-options.md.github/upgrades/{scenarioId}.
Les options incluent généralement :
- Stratégie de mise à niveau. Approche ascendante (projets feuilles en premier), approche descendante (application en premier) ou tout en une fois (tous les projets en un seul passage).
- Approche de mise à niveau du projet. Réécriture in situ ou mise à niveau en parallèle.
- Modernisation de la technologie. Indique s’il faut mettre à niveau des technologies telles que Entity Framework (EF6 vers EF Core), l’injection de dépendances, la journalisation et la configuration.
- Gestion des packages. Indique s’il faut adopter la gestion centralisée des packages.
- Gestion de la compatibilité. Comment résoudre les API non prises en charge, les packages incompatibles et les fonctionnalités spécifiques à la plateforme.
Passez en revue les options proposées et confirmez ou remplacez-les. Demandez à Copilot de passer à l'étape de planification.
Commencer la planification et passer en revue le plan
L’étape de planification convertit l’évaluation et vos options de mise à niveau confirmées en une spécification détaillée qui explique comment résoudre chaque problème. Lorsque vous indiquez Copilot de passer à la planification, il génère un fichier plan.md dans .github/upgrades/{scenarioId}. L’agent crée également un scenario-instructions.md fichier qui stocke les préférences, les décisions et les instructions personnalisées pour la mise à niveau.
Le plan documente les stratégies de mise à niveau, les approches de refactorisation, les chemins de mise à niveau des dépendances et les atténuations des risques. L’exemple suivant montre une partie d’un plan pour un projet 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)
...
Pour passer en revue et personnaliser le plan :
Ouvrez le
plan.mdfichier dans.github/upgrades/{scenarioId}.Passez en revue les stratégies de mise à niveau et les mises à jour des dépendances.
Modifiez le plan pour ajuster les étapes de mise à niveau ou ajouter du contexte en fonction des besoins.
Caution
Le plan dépend de l’interdépendance des projets. La mise à niveau ne réussit pas si vous modifiez le plan d’une manière qui empêche la fin du chemin de mise à niveau. Par exemple, si Project A dépend de Project B et que vous supprimez Project B du plan de mise à niveau, la mise à niveau Project A peut échouer.
Demandez à Copilot de passer à l’étape d’exécution.
Démarrer l’exécution et exécuter la mise à niveau
L’étape d’exécution interrompt le plan en tâches séquentielles et concrètes avec des critères de validation. Lorsque vous indiquez Copilot de passer à l’exécution, il génère un fichier tasks.md dans .github/upgrades/{scenarioId}.
La liste des tâches décrit chaque tâche et comment Copilot valide la réussite. L’exemple suivant montre une liste de tâches pour une solution contenant des projets ASP.NET Core et 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"
Pour exécuter la mise à niveau :
- Dites à Copilot de démarrer la mise à niveau.
- Surveillez la progression en examinant le fichier
tasks.mden tant que Copilot met à jour les états des tâches. - Si Copilot rencontre un problème qu'il ne peut pas résoudre, fournissez l'aide demandée.
- En fonction de vos décisions et modifications, Copilot adapte sa stratégie aux tâches restantes et poursuit la mise à niveau.
Copilot valide les modifications en fonction de la stratégie Git que vous avez configurée lors de la pré-initialisation : par tâche, par groupe de tâches ou à la fin.
Vérifier la mise à niveau
Une fois la mise à niveau terminée, Copilot affiche les étapes suivantes recommandées dans la réponse de conversation. Passez en revue le fichier tasks.md dans .github/upgrades/{scenarioId} pour connaître l’état de chaque étape.
L’exemple suivant montre les tâches terminées pour une mise à niveau d’un projet 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**)
...
Pour vérifier la mise à niveau :
- Passez en revue l’état de la tâche finale dans
tasks.md. - Résolvez les échecs de tests ou d’erreurs de compilation.
- Vérifiez que tous les packages NuGet mis à jour sont compatibles avec votre application.
- Testez soigneusement votre application pour vérifier que la mise à niveau a réussi.
- Appliquez de nouvelles fonctionnalités et améliorations disponibles dans la version .NET mise à niveau.