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.
La modernisation des applications GitHub Copilot est un agent optimisé pour l’IA dans Visual Studio qui met à niveau les projets .NET vers des versions plus récentes et migre des applications vers Azure. Cet article vous guide tout au long de la mise à niveau de vos applications .NET à l’aide d’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 vous aide à résoudre les correctifs de code tout au long du processus. Il prend en charge la mise à niveau des anciennes versions de .NET vers la dernière version, notamment les migrations de .NET Framework vers .NET moderne.
Prerequisites
Avant de commencer, vérifiez que vous disposez des conditions suivantes :
Système d’exploitation Windows.
Visual Studio 2026 (ou Visual Studio 2022 version 17.14.17 et ultérieure).
Charge de travail de développement .NET Desktop avec les composants facultatifs suivants activés :
- GitHub Copilot, outil d'assistance au codage
- Modernisation des applications GitHub Copilot
Abonnement GitHub Copilot (payant ou gratuit).
Connecté à Visual Studio à l’aide d’un compte GitHub avec l’accès Copilot.
Important
Si vous modifiez des abonnements, vous devez redémarrer Visual Studio.
Le code doit être écrit en C#.
Lancer la mise à niveau
Pour démarrer une mise à niveau, interagissez avec la conversation GitHub Copilot pour lancer l’agent de modernisation :
Ouvrez votre projet ou solution .NET dans Visual Studio.
Accédez à l’agent de modernisation d’application GitHub Copilot à l’aide de l’une des méthodes suivantes :
Cliquez avec le bouton droit sur la solution ou le projet dans l’Explorateur de solutions , puis sélectionnez Moderniser.
— ou —
Ouvrez la fenêtre GitHub Copilot Chat et tapez
@modernizesuivi de votre demande de mise à niveau ou de migration.Indiquez à l’agent
@modernizece que vous souhaitez mettre à niveau ou migrer.
Lorsque vous démarrez la mise à niveau, Copilot vous invite à créer une branche si vous travaillez dans un dépôt Git. Copilot exécute ensuite un workflow en trois étapes, en écrivant un fichier Markdown pour chaque étape dans .github/upgrades, dans votre dépôt. Si .github/upgrades existe déjà suite à une tentative précédente, Copilot demande s’il faut continuer ou démarrer à nouveau.
Les trois étapes sont les suivantes :
- Phase d’évaluation : Copilot examine votre projet pour identifier les changements cassants, les problèmes de compatibilité et les exigences de mise à niveau.
- Phase de planification : Copilot crée une spécification détaillée expliquant comment résoudre chaque problème.
- Phase d’exécution : Copilot interrompt le plan en tâches séquentielles et effectue la mise à niveau.
Démarrer l’évaluation et passer en revue les résultats
L’étape d’é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 cette étape et génère un assessment.md fichier dans .github/upgrades.
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 afin de savoir exactement ce qui a besoin d’attention. L’exemple suivant montre une partie d’une évaluation pour une mise à niveau d’un projet ASP.NET Core de .NET 6.0 vers .NET 9.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 le plan :
- Ouvrez le
assessment.mdfichier dans.github/upgrades. - 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.
- Dites à Copilot de passer à l’étape de planification.
Commencer la planification et passer en revue le plan
L’étape de planification convertit l’évaluation 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 plan.md fichier dans .github/upgrades.
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.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 ajoutez un contexte si nécessaire.
Caution
Le plan est basé sur des interdépendances de projet. La mise à niveau ne réussit pas si vous modifiez le plan de manière à ce que le chemin de migration ne puisse pas se terminer. Par exemple, si Project A dépend de Project B et que vous supprimez Project B du plan de mise à niveau, la mise à niveau de Project A peut échouer.
Indiquez à 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 tasks.md fichier dans .github/upgrades.
La liste des tâches décrit chaque tâche et explique comment Copilot confirme qu’elle a réussi. L’exemple suivant montre la liste des tâches d’une solution contenant ASP.NET projets 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 :
- Indiquez à Copilot de démarrer la mise à niveau.
- Surveillez la progression en examinant le
tasks.mdfichier en 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.
- Laissez Copilot apprendre à partir de vos interventions et poursuivre la mise à niveau.
L’outil crée une validation Git pour chaque partie du processus. Vous pouvez donc facilement restaurer les modifications ou obtenir des informations détaillées sur ce qui a changé.
Vérifier la mise à niveau
Une fois la mise à niveau terminée, Copilot affiche les étapes suivantes dans la réponse de conversation pour vous guider sur ce qu’il faut faire après le processus. Passez en revue le tasks.md fichier pour connaître l’état de chaque étape. L’outil crée une validation Git pour chaque partie du processus de mise à niveau. Vous pouvez donc facilement restaurer les modifications ou obtenir des informations détaillées sur ce qui a changé.
L’exemple suivant montre les tâches terminées pour une mise à niveau de 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.