Anteckning
Å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-appmodernisering är en AI-baserad agent i Visual Studio som hjälper dig att uppgradera .NET-projekt till nyare versioner och migrera program till Azure. Den här artikeln vägleder dig genom processen med att använda det här verktyget för att modernisera dina .NET-program, från inledande utvärdering till slutlig validering.
Moderniseringsagenten analyserar dina projekt och beroenden, skapar en uppgraderingsplan och hjälper till med kodkorrigeringar under hela processen. Det stöder uppgradering från äldre .NET-versioner till de senaste, inklusive migreringar från .NET Framework till moderna .NET.
Förutsättningar
Kontrollera att du har följande krav innan du börjar:
- Windows-operativsystem 
- Arbetsbelastning för .NET-skrivbordsutveckling med följande valfria komponenter aktiverade: - GitHub Copilot
- GitHub Copilot-appmodernisering för .NET
 
- Copilot-licens och prenumerationsplan som stöds: - Logga in i Visual Studio med ett GitHub-konto med Copilot-åtkomst. - Prenumerationsplaner som stöds: - Copilot Pro
- Copilot Pro+
- Copilot Business
- Copilot Enterprise
 - Viktigt! - Om du ändrar prenumerationer måste du starta om Visual Studio. 
- Koden måste skrivas i C#. 
Starta uppgraderingsprocessen
Det första steget för att uppgradera är att generera en plan genom att interagera med GitHub Copilot. Följ de här stegen för att starta uppgraderingen:
- Öppna ditt .NET-projekt eller din lösning i Visual Studio. 
- Få åtkomst till GitHub Copilot-appmoderniseringsagenten med någon av följande metoder: - Högerklicka på lösningen eller projektet i Solution Explorer och välj Modernisera. - —eller— - Öppna GitHub Copilot Chat-fönstret och skriv - @modernizeföljt av din uppgraderings- eller migreringsbegäran.
- Berätta för agenten - @modernizevad du vill uppgradera eller migrera.
Generera en uppgraderingsplan
När processen startar analyserar Copilot dina projekt och deras beroenden och ställer sedan en rad frågor om uppgraderingen. När du har besvarat dessa frågor skrivs en uppgraderingsplan i form av en Markdown-fil.
Så här genererar och anpassar du din plan:
- Svara på Copilots frågor om dina uppgraderingskrav och inställningar.
- Granska den genererade uppgraderingsplanen i Markdown-filen.
- Du kan också redigera Markdown-filen för att ändra uppgraderingsstegen eller lägga till mer kontext.
- Be Copilot att fortsätta med uppgraderingen när du är nöjd med planen.
Försiktighet
Planen genereras baserat på projektens beroenden. Uppgraderingen lyckas inte om du ändrar planen så att migrationsvägen inte kan slutföras. Om projekt A till exempel är beroende av Projekt B och du tar bort Project B från uppgraderingsplanen kan uppgraderingen av Project A misslyckas.
Följande kodfragment visar strukturen för en 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 |
...
Genomför uppgraderingen
När en uppgraderingsplan är klar ber du Copilot att starta uppgraderingen. När uppgraderingsprocessen startar meddelar Copilot dig vad den gör i chattfönstret och öppnar dokumentet Uppgraderingsförloppsinformation , som visar status för varje steg. Om det uppstår ett problem pausar Copilot och ber om din riktning eller hjälp med att åtgärda dessa problem.
Varje större steg i uppgraderingsprocessen överförs till den lokala Git-lagringsplatsen.
Granska uppgraderingsresultat
När uppgraderingen är klar genereras en rapport som beskriver varje steg i uppgraderingen. Verktyget skapar en Git-incheckning för varje del av uppgraderingsprocessen, så att du enkelt kan återställa ändringarna eller få detaljerad information om vad som har ändrats. Rapporten innehåller Hashar för Git-incheckning och innehåller avsnittet Nästa steg som beskriver de steg du bör vidta när uppgraderingen har slutförts.
I följande exempel visas rapporten för en slutförd uppgradering som innehöll ett testfel:
# .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.
Nästa steg
När uppgraderingen har slutförts:
- Granska den genererade uppgraderingsrapporten och eventuella testresultat.
- Åtgärda eventuella misslyckade tester eller kompileringsfel som kan finnas kvar.
- Kontrollera att alla uppdaterade NuGet-paket är kompatibla med ditt program.
- Testa programmet noggrant för att kontrollera att uppgraderingen lyckades.
- Använd nya funktioner och förbättringar som är tillgängliga i den uppgraderade .NET-versionen.