Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Modernizace aplikací GitHub Copilot je agent využívající AI v sadě Visual Studio, který pomáhá upgradovat projekty .NET na novější verze a migrovat aplikace do Azure. Tento článek vás provede procesem použití tohoto nástroje k modernizaci aplikací .NET od počátečního vyhodnocení po konečné ověření.
Agent modernizace analyzuje vaše projekty a závislosti, vytvoří plán upgradu a pomůže s opravami kódu v průběhu procesu. Podporuje upgrade ze starších verzí .NET na nejnovější, včetně migrací z rozhraní .NET Framework na moderní .NET.
Požadavky
Než začnete, ujistěte se, že máte následující požadavky:
Operační systém Windows
Visual Studio 2026 (nebo Visual Studio 2022 verze 17.14.17 nebo novější)
Úloha vývoje desktopových aplikací .NET s povolenými následujícími volitelnými komponentami:
- GitHub Copilot
- Modernizace aplikací GitHub Copilot pro .NET
Licence Copilot a podporovaný plán předplatného:
přihlášení k sadě Visual Studio pomocí účtu GitHub s zkopírovaného přístupu .
Podporované plány předplatného:
- Copilot Pro
- Copilot Pro+
- Copilot Business
- Copilot Enterprise
Důležité
Pokud změníte předplatná, musíte sadu Visual Studio restartovat.
Kód musí být napsaný v jazyce C#.
Zahájit proces aktualizace
Prvním krokem k upgradu je generování plánu interakcí s GitHub Copilotem. Pokud chcete zahájit upgrade, postupujte takto:
Otevřete projekt nebo řešení .NET v sadě Visual Studio.
K modernizaci aplikace GitHub Copilot použijte některou z těchto metod:
V Průzkumníku řešení klikněte pravým tlačítkem myši na řešení nebo projekt a vyberte Modernizovat.
— nebo —
Otevřete okno chatu GitHub Copilot a zadejte
@modernizesvůj upgrade nebo žádost o migraci.Informujte agenta
@modernize, co chcete upgradovat nebo migrovat.
Vygenerování plánu upgradu
Jakmile se proces spustí, Copilot analyzuje vaše projekty a jejich závislosti a pak se vás zeptá na řadu otázek týkajících se upgradu. Po zodpovězení těchto otázek se plán upgradu zapíše ve formě souboru Markdownu.
Generování a přizpůsobení plánu:
- Odpovězte na otázky Copilotu týkající se vašich požadavků na upgrade a vašich preferencí.
- Zkontrolujte vygenerovaný plán upgradu v souboru Markdown.
- Volitelně můžete upravit soubor Markdown a změnit postup upgradu nebo přidat další kontext.
- Řekněte Copilotu, aby pokračoval v upgradu, až budete s plánem spokojení.
Upozornění
Plán se vygeneruje na základě vzájemných závislostí vašich projektů. Upgrade nebude úspěšný, pokud plán upravíte tak, aby se cesta migrace nedokončí. Pokud projekt A například závisí na projektu B a odeberete projekt B z plánu upgradu, upgrade projektu A může selhat.
Následující fragment kódu ukazuje strukturu plánu:
# .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 |
...
Provedení upgradu
Jakmile je plán upgradu připravený, řekněte Copilotu, aby spustil upgrade. Po spuštění procesu upgradu vám Copilot dá vědět, co dělá v okně chatu, a otevře dokument Podrobnosti průběhu upgradu , který uvádí stav každého kroku. Pokud narazí na problém, Copilot pozastaví a požádá o váš směr nebo pomoc s opravou těchto problémů.
Každý klíčový krok v procesu inovace je uložen do místního úložiště Git.
Kontrola výsledků upgradu
Po dokončení upgradu se vygeneruje zpráva, která popisuje každý krok upgradu. Nástroj vytvoří potvrzení Gitu pro každou část procesu upgradu, takže můžete snadno vrátit změny zpět nebo získat podrobné informace o tom, co se změnilo. Sestava obsahuje Git commit hash a část Další kroky, která popisuje kroky, které byste měli provést po dokončení upgradu.
Následující příklad ukazuje zprávu o dokončeném upgradu, která obsahovala chybu testu.
# .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.
Další kroky
Po dokončení procesu upgradu:
- Zkontrolujte vygenerovanou zprávu o upgradu a veškeré výsledky testů.
- Vyřešte všechny neúspěšné testy nebo chyby kompilace, které by mohly zůstat.
- Ujistěte se, že všechny aktualizované balíčky NuGet jsou kompatibilní s vaší aplikací.
- Důkladně otestujte aplikaci a ověřte, že upgrade proběhl úspěšně.
- Použijte nové funkce a vylepšení dostupná v upgradované verzi .NET.