Notes
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.
Modernisation des applications GitHub Copilot : la mise à niveau pour .NET est une extension Visual Studio puissante qui fonctionne avec vous pour mettre à niveau des projets vers des versions plus récentes de .NET, mettre à niveau vos dépendances et appliquer des correctifs de code.
La modernisation des applications Copilot GitHub est distribuée en tant qu’extension Visual Studio et est un processus de mise à niveau interactif.
Conditions préalables
Système d'exploitation Windows
Connectez-vous à Visual Studio à l’aide d’un compte GitHub avec accès Copilot.
Plans d’abonnement pris en charge :
- Copilot Pro
- Copilot Pro+
- Copilot Business
- Copilot Enterprise
(Si vous modifiez des abonnements, vous devez redémarrer Visual Studio.)
- Le code doit se trouver dans un référentiel Git local.
- Le code doit être écrit en C#.
- Facultatif mais recommandé : utilisez le mode d’agent Copilot GitHub pour le processus de mise à niveau. Pour plus d’informations, consultez Utiliser le mode agent Copilot dans Visual Studio.
Pour obtenir des instructions d’installation, consultez Installer la modernisation des applications GitHub Copilot - mise à niveau pour .NET.
Types de projets pris en charge
La modernisation des applications Copilot GitHub prend en charge la mise à niveau des projets codés en C#. Les types de projets suivants sont pris en charge :
- ASP.NET et technologies connexes telles que MVC, Razor Pages, API web
- Blazor
- Les fonctions Azure
- Windows Presentation Foundation
- Windows Forms
- bibliothèques de classes ;
- Applications de console
Important
La version actuelle de l’extension ne prend pas en charge la mise à niveau de .NET Framework vers .NET. Dans ces scénarios, utilisez l’Assistant Mise à niveau .NET pour migrer vers .NET, puis utilisez cet outil pour moderniser votre code.
Chemins de mise à jour
Les chemins de mise à niveau suivants sont pris en charge :
- Mettez à niveau des projets de .NET Core vers .NET.
- Mettez à niveau les projets des versions antérieures de .NET vers la dernière version.
- Moderniser votre base de code.
Démarrer le processus de mise à niveau
La première étape de la mise à niveau consiste à générer un plan en interagissant avec GitHub Copilot. Il existe deux façons d’obtenir Copilot pour utiliser l’outil :
Cliquez avec le bouton droit sur la solution ou le projet, puis sélectionnez Mettre à niveau avec GitHub Copilot.
— ou —
Activez le mode agent Copilot GitHub et demandez à une nouvelle conversation Copilot de mettre à niveau la solution ou le projet.
Important
Après avoir activé le mode agent Copilot GitHub, définissez le mode conversation sur Agent et activez l’outil upgrade_start .
Générer un plan
Une fois le processus démarré, Copilot analyse vos projets et leurs dépendances, puis vous pose une série de questions sur la mise à niveau. Une fois que vous avez répondu à ces questions, un plan de mise à niveau est écrit sous la forme d’un fichier Markdown. Si vous indiquez à Copilot de poursuivre la mise à niveau, ce plan décrit les étapes du processus de mise à niveau.
Vous pouvez ajuster le plan en modifiant le fichier Markdown pour modifier les étapes de mise à niveau ou ajouter un contexte supplémentaire.
Avertissement
Le plan est généré en fonction des dépendances entre vos projets. 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.
L’extrait de code suivant illustre la structure d’un plan :
# .NET 9.0 Upgrade Plan
## Execution Steps
1. Validate that an .NET 9.0 SDK required for this upgrade is installed on the machine and if not, help to get it installed.
2. Ensure that the SDK version specified in global.json files is compatible with the .NET 9.0 upgrade.
3. Upgrade projects to .NET 9.0.
- 3.1. Upgrade RazorMovie.csproj
- 3.2. Upgrade RazorMovie.Tests.csproj
4. Run unit tests to validate upgrade in the projects listed below:
- RazorMovie.Tests.csproj
## Settings
This section contains settings and data used by execution steps.
### Aggregate NuGet packages modifications across all projects
NuGet packages used across all selected projects or their dependencies that need version update in projects that reference them.
| Package Name | Current Version | New Version | Description |
|:-------------------------------------------------|:-------------------:|:-----------:|:-------------------------|
| HtmlSanitizer | 7.1.542 | 9.0.884 | Security vulnerability |
| Microsoft.Data.SqlClient | 4.0.5 | 6.0.2 | Deprecated |
| Microsoft.EntityFrameworkCore.Design | 6.0.0-rtm.21467.1 | 9.0.5 | Recommended for .NET 9.0 |
| Microsoft.EntityFrameworkCore.SqlServer | 6.0.0-rc.1.21452.10 | 9.0.5 | Recommended for .NET 9.0 |
| Microsoft.EntityFrameworkCore.Tools | 6.0.0-rc.1.21452.10 | 9.0.5 | Recommended for .NET 9.0 |
| Microsoft.VisualStudio.Web.CodeGeneration.Design | 6.0.0-rc.1.21464.1 | 9.0.0 | Recommended for .NET 9.0 |
...
Effectuer la mise à niveau
Une fois qu’un plan de mise à niveau est prêt, indiquez à Copilot de démarrer la mise à niveau. Une fois le processus de mise à niveau démarré, Copilot vous indique ce qu’il fait dans la fenêtre de conversation et ouvre le document Détails de la progression de la mise à niveau, qui répertorie l’état de chaque étape. S’il rencontre un problème, Copilot s’interrompt et demande votre direction ou aide pour résoudre ces problèmes.
L’outil diffère de l’expérience en fonction de l’activation ou non du mode agent Copilot.
Mode d’agent Copilot
Lorsque le mode d’agent Copilot est activé et utilisé, Copilot tente d’identifier la cause d’un problème et d’appliquer un correctif. Si Copilot ne semble pas corriger le problème, il demande de votre aide. Lorsque vous intervient, Copilot apprend des modifications que vous apportez et tente de les appliquer automatiquement pour vous, si le problème est à nouveau rencontré.
Mode de réparation Copilot
Le mode correctif Copilot est utilisé si le mode agent est désactivé ou non utilisé. Copilot signale les problèmes qu’il trouve et vous guide tout au long des correctifs requis. Elle s’appuie sur vous pour effectuer les modifications de code réelles, puis vérifie ces correctifs.
Chaque étape majeure du processus de mise à niveau est validée dans le référentiel Git local.
Résultats de la mise à niveau
Une fois la mise à niveau terminée, un rapport est généré qui décrit chaque étape de la mise à niveau. 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é. Le rapport contient les hachages de validation Git.
Le rapport fournit également une section Étapes suivantes qui décrit les étapes à suivre une fois la mise à niveau terminée. L’exemple suivant montre le rapport d’une mise à niveau terminée qui contenait un échec de test :
# .NET 9 Upgrade Report
## Project modifications
| Project name | Old Target Framework | New Target Framework | Commits |
|:-----------------------------------------------|:-----------------------:|:----------------------------:|---------------------------|
| RazorMovie | net6.0 | net9.0 | af8cf633, aa61a18d |
| MvcMovie | net6.0 | net9.0 | cc8c9015 |
| WpfMovie | net6.0-windows | net9.0-windows | 9c4b13f9 |
| RazorMovie.Tests | net6.0 | net9.0 | b8d85e97 |
| MvcMovie.Tests | net6.0 | net9.0 | b8d85e97 |
| WpfMovie.Tests | net6.0-windows | net9.0-windows7.0 | b8d85e97 |
## NuGet Packages
| Package Name | Old Version | New Version | Commit Id |
|:-------------------------------------------------|:-------------------:|:-----------:|-----------|
| HtmlSanitizer | 7.1.542 | 9.0.884 | af8cf633 |
| Microsoft.Data.SqlClient | 4.0.5 | 6.0.2 | bf8deeac |
| Microsoft.EntityFrameworkCore.Design | 6.0.0-rtm.21467.1 | 9.0.5 | bf8deeac |
| Microsoft.EntityFrameworkCore.SqlServer | 6.0.0-rc.1.21452.10 | 9.0.5 | bf8deeac |
| Microsoft.EntityFrameworkCore.Tools | 6.0.0-rc.1.21452.10 | 9.0.5 | bf8deeac |
| Microsoft.VisualStudio.Web.CodeGeneration.Design | 6.0.0-rc.1.21464.1 | 9.0.0 | bf8deeac |
## All commits
| Commit ID | Description |
|:----------|:--------------------------------------------------------|
| af8cf633 | Update HtmlSanitizer package in RazorMovie.csproj |
| aa61a18d | Upgrade target framework in RazorMovie.csproj |
| cc8c9015 | Upgrade to .NET 9 and update dependencies |
| bf8deeac | Update package references in MvcMovie.csproj |
| 9c4b13f9 | Update WpfMovie.csproj to target .NET 9.0 |
| b8d85e97 | Update test projects to .NET 9 and enhance dependencies |
## Test Results
| Project Name | Passed | Failed | Skipped |
|:-----------------------|:------:|:------:|:-------:|
| RazorMovie.Tests | 0 | 0 | 0 |
| MvcMovie.Tests | 2 | 0 | 0 |
| WpfMovie.Tests | 6 | 1 | 0 |
## Next steps
- Review the test results and address the single failing test in `WpfMovie.Tests`.
- Ensure all updated NuGet packages are compatible with your application.
- Leverage new features and improvements in .NET 9.0 for your projects.
Télémétrie
L’outil collecte uniquement des données sur les types de projets, l’intention de mettre à niveau et la durée de mise à niveau. Les données sont collectées et agrégées via Visual Studio lui-même et ne contiennent aucune information identifiable par l’utilisateur. Pour plus d’informations sur la politique de confidentialité de Microsoft, consultez le Programme d’amélioration de l’expérience client Visual Studio.