GitHub Copilot アプリの最新化 - .NET のアップグレードは、プロジェクトを新しいバージョンの .NET にアップグレードしたり、依存関係をアップグレードしたり、コード修正を適用したりするための強力な Visual Studio 拡張機能です。
GitHub Copilot アプリの最新化は、Visual Studio 拡張機能として配布され、対話型のアップグレード プロセスです。
[前提条件]
Windows オペレーティング システム
GitHub アカウント を使用して、Copilot アクセスで Visual Studio にサインインします。
サポートされているサブスクリプション プラン:
- Copilot Pro
- Copilot Pro+
- Copilot Business
- Copilot Enterprise
(サブスクリプションを変更する場合は、Visual Studio を再起動する必要があります)。
- コードはローカル Git リポジトリに存在する必要があります。
- コードは C# で記述する必要があります。
- オプションですが、推奨: アップグレード プロセスには GitHub Copilot エージェント モード を使用します。 詳細については、「 Visual Studio での Copilot エージェント モードの使用」を参照してください。
インストール手順については、「 GitHub Copilot アプリの最新化のインストール - .NET のアップグレード」を参照してください。
サポートされているプロジェクトの種類
GitHub Copilot アプリのモダン化では、C# でコーディングされたプロジェクトのアップグレードがサポートされています。 次の種類のプロジェクトがサポートされています。
- mvc、Razor Pages、Web API などの ASP.NET および関連テクノロジ
- ブレイザー
- Azure Functions (アジュール ファンクションズ)
- Windows Presentation Foundation
- Windows フォーム
- クラス ライブラリ
- コンソール アプリ
Von Bedeutung
拡張機能の現在のバージョンでは、.NET Framework から .NET へのアップグレードはサポートされていません。 これらのシナリオでは、 .NET アップグレード アシスタント を使用して .NET に移行し、このツールを使用してコードを最新化します。
アップグレード パス
次のアップグレード パスがサポートされます。
- プロジェクトを .NET Core から .NET にアップグレードします。
- プロジェクトを以前のバージョンの .NET から最新バージョンにアップグレードします。
- コード ベースを最新化します。
アップグレード プロセスを開始する
アップグレードの最初の手順は、GitHub Copilot と対話してプランを生成することです。 Copilot でツールを使用するには、次の 2 つの方法があります。
ソリューションまたはプロジェクトを右クリックし、[ GitHub Copilot でアップグレード] を選択します。
または
GitHub Copilot エージェント モードを有効にして、ソリューションまたはプロジェクトをアップグレードするように新しい Copilot チャットに依頼します。
Von Bedeutung
GitHub Copilot エージェント モードを有効にした後、チャット モードを Agent に設定し、 upgrade_start ツールを有効にします。
プランを生成する
プロセスが開始されると、Copilot によってプロジェクトとその依存関係が分析され、アップグレードに関する一連の質問が表示されます。 これらの質問に回答すると、アップグレード 計画が Markdown ファイルの形式で書き込まれます。 アップグレードを続行するように Copilot に指示した場合、このプランではアップグレード プロセスの手順について説明します。
プランを調整するには、Markdown ファイルを編集してアップグレード手順を変更するか、コンテキストを追加します。
注意事項
計画は、プロジェクトの相互依存関係に基づいて生成されます。 移行パスを完了できない方法でプランを変更した場合、アップグレードは成功しません。 たとえば、 プロジェクト A が プロジェクト B に依存していて、アップグレード 計画から プロジェクト B を 削除すると、 プロジェクト A の アップグレードが失敗する可能性があります。
次のスニペットは、プランの構造を示しています。
# .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 |
...
アップグレードを実行する
アップグレード計画の準備ができたら、アップグレードを開始するように Copilot に指示します。 アップグレード プロセスが開始されると、Copilot はチャット ウィンドウで何が行っているかを知り、 アップグレードの進行状況の詳細 ドキュメントを開きます。このドキュメントには、すべてのステップの状態が一覧表示されます。 問題が発生した場合、Copilot は一時停止し、これらの問題を解決するための指示や支援を求めます。
このツールは、Copilot エージェント モード が有効かどうかによってエクスペリエンスが異なります。
Copilot エージェント モード
Copilot エージェント モードを有効にして使用すると、Copilot は問題の原因を特定し、修正プログラムを適用しようとします。 Copilot が問題を修正できないと思われる場合は、ヘルプを要求します。 介入すると、Copilot は行った変更から学習し、問題が再び発生した場合に自動的に適用しようとします。
Copilot 修正モード
エージェント モードが無効になっている場合、または使用されていない場合は、Copilot 修正モードが使用されます。 Copilot は、検出された問題を報告し、必要な修正を案内します。 実際のコード変更の実行に依存し、それらの修正を検証します。
アップグレード プロセスの各主要な手順は、ローカル Git リポジトリにコミットされます。
アップグレードの結果
アップグレードが完了すると、アップグレードのすべての手順を説明するレポートが生成されます。 このツールでは、アップグレード プロセスのすべての部分に対して Git コミットが作成されるため、変更を簡単にロールバックしたり、変更内容に関する詳細情報を取得したりできます。 レポートには Git コミット ハッシュが含まれています。
また、このレポートには、アップグレードの完了後に実行する必要がある手順を説明する 次 の手順セクションも示されています。 次の例は、テストエラーを含むアップグレードが完了したレポートを示しています。
# .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.
テレメトリ
このツールは、プロジェクトの種類、アップグレードの意図、およびアップグレード期間に関するデータのみを収集します。 データは Visual Studio 自体を通じて収集および集計され、ユーザーを特定できる情報は含まれません。 Microsoft のプライバシー ポリシーの詳細については、「 Visual Studio カスタマー エクスペリエンス向上プログラム」を参照してください。
関連コンテンツ
.NET