GitHub Copilotアップグレードは、プロジェクトを新しいバージョンの.NETに迅速かつ自信を持ってアップグレードするのに役立つGitHub Copilot エージェントです。 Visual Studio、Visual Studio Code、GitHub Copilot CLI、および GitHub.com 全体の評価、ソリューションの推奨事項、コード修正、検証について説明します。
このエージェントを使用して、次の操作を行います。
- 新しいバージョンの .NET にアップグレードします。
- .NET Framework からアップグレードする場合は特に、.NET アプリを最新化します。
- アプリケーションのコード、構成、依存関係を評価します。
- アプリが正常にビルドおよびテストされたことを検証します。
シナリオ
エージェントは、シナリオと呼ばれる複数のエンド ツー エンドの最新化ワークフロー を提供します。 各シナリオは、特定の種類のアップグレードまたは移行をガイドするマネージド ワークフローです。
| シナリオ | Description | プロンプトの例 |
|---|---|---|
| .NETバージョンのアップグレード | 以前の.NET バージョンから .NET 8、9、10 以降へのアップグレード。 | ソリューションを.NET 10にアップグレードします |
| SDK スタイルの変換 | 従来のプロジェクト形式を SDK スタイルに変換します。 | "SDK スタイルに変換する" |
| Newtonsoft.Json のアップグレード | Newtonsoft.Json を System.Text.Json に置き換えます。 | "Newtonsoft.Json からのアップグレード" |
| SqlClient のアップグレード | System.Data.SqlClient から Microsoft.Data.SqlClient にアップグレードします。 | "SqlClient の更新" |
| Azure Functions アップグレード | Azure Functionsインプロセスから分離ワーカー モデルにアップグレードします。 | Azure Functionsをアップグレードする |
| Semantic Kernelからエージェントへ | Semantic Kernel エージェントを Microsoft エージェント フレームワークにアップグレードします。 | "私のSKエージェントをアップグレードする" |
| Aspire 統合 | 内部ループとAzureデプロイのAspireサポートを追加します。 | "アプリに Aspire を追加する" |
| Aspire バージョンのアップグレード | 既存の Aspire アプリケーションを新しいバージョンにアップグレードします。 | " Aspire バージョンのアップグレード" |
| WebForms から Blazor へのアップグレード | ASP.NET Web Forms アプリケーションを Blazor にアップグレードします。 | "Web フォーム アプリを Blazor に移行する" |
すべてのシナリオと 30 以上の組み込みのアップグレード スキルの完全なリファレンスについては、「 シナリオとスキルリファレンス」を参照してください。
フィードバックの提供
Microsoftフィードバックを評価し、それを使用してエージェントを改善します。 次のいずれかのオプションを使用してフィードバックを残します。
Visual Studioでは、Suggest a feature オプションと Report a problem オプションを使用します。
アップグレード エージェント GitHub リポジトリで問題を提出します。
前提条件
エージェントを使用する前に、開発環境でGitHub Copilotアップグレードを設定します。 インストール手順については、「GitHub Copilot アップグレードのインストール」を参照してください。
.NET プロジェクトのアップグレード
アップグレード エージェントは、次の種類の C# およびVisual Basic プロジェクトのアップグレードをサポートしています。
- ASP.NET Core (および MVC、Razor Pages、Web API などの関連テクノロジ)
- ASP.NET Web Forms
- Blazor
- Azure Functions
- Windows Presentation Foundation (WPF)
- Windows フォーム
- WinUI
- .NET MAUIとXamarin
- クラス ライブラリ
- コンソール アプリ
- テスト プロジェクト (MSTest、NUnit、xUnit)
アップグレードを開始するには、「GitHub Copilot アップグレードを使用した.NET アプリのアップグレード」を参照してください。
サポートされているアップグレード パス
エージェントは、次のアップグレード パスをサポートしています。
| Source | 目標 |
|---|---|
| .NET Framework (任意のバージョン) | .NET 8 以降 |
| .NET Framework (任意のバージョン) | .NET Framework 4.8.1 |
| .NET Core 1.x – 3.x | .NET 8 以降 |
| .NET 5 以降 | .NET 8 以降 |
.NET プロジェクトを Azure に移行する
.NET アプリケーションをAzureに移行するには、GitHub Copilotモダン化エージェントを使用します。 モダン化エージェントは、データベースの移行、ストレージ、ID、メッセージング、デプロイなどのAzure固有のシナリオを処理します。
ダッシュボードを使用してアップグレードを監視する
アップグレード ダッシュボードには、GitHub Copilot CLI とGitHub Copilot アプリのアップグレード セッションが視覚的に表示されます。 パネルを使用して、全体的な進行状況、シナリオ、タスク、プロジェクト、依存関係、評価結果、アップグレード オプション、エージェント アクティビティを追跡します。
ダッシュボードを開くには、アップグレード セッション中にダッシュボードを表示するようにCopilotに依頼します。 ダッシュボードは現在、Visual Studio、Visual Studio Code、またはその他の IDE では使用できません。 各パネルの詳細については、「 アップグレード ダッシュボードを使用したアップグレードの監視」を参照してください。
どのように機能するのか
アップグレードまたは移行プロセスを開始するには、次を参照してください。
次のいずれかの方法を使用してエージェントを起動します。
Visual Studio :ソリューション エクスプローラー Modernize を選択します。 または、GitHub Copilot Chat ウィンドウを開き、「@Modernize」と入力します。-
Visual Studio Code: GitHub Copilot Chat パネルを開き、「
@upgrade」と入力します。 -
GitHub Copilot CLI: 「
@upgrade」と入力し、アップグレードまたは移行要求を続けます。 -
GitHub Copilot アプリ: エージェント ピッカーで、
Upgradeを選択します。
アップグレードまたは移行する内容をエージェントに伝えます。
アップグレード エージェントにアプリのアップグレードを依頼Copilot、Git リポジトリで作業している場合は、最初に新しいブランチを作成するように求められます。 次Copilotプロジェクトを評価し、3 段階のワークフローを実行します。 各ステージでは、リポジトリ内の .github/upgrades/{scenarioId} の下に Markdown ファイルが生成されるため、続行する前に次の内容を確認できます。
.github/upgrades/{scenarioId}が以前の試行から既に存在する場合、Copilot は続行するか、新たに開始するかを尋ねます。
Copilotは、プロジェクトの構造、依存関係、およびコード パターンを調べて包括的な評価を構築することから始めます。
assessment.md ファイルには、破壊的変更、API 互換性の問題、非推奨のパターン、アップグレード スコープが一覧表示されます。
評価後、Copilotは次の 3 つのステージを実行します。
Assessment: Copilot は、プロジェクト構造、依存関係、コード パターンを調べ、アップグレード戦略 (ボトムアップ、トップダウン、一括)、プロジェクトアップグレードアプローチ、テクノロジモダン化オプション、互換性処理など、レビューの戦略決定を提示します。 Copilotは、確認された決定を
upgrade-options.mdに保存します。Planning: Copilotは、評価と確認されたオプションを詳細な仕様に変換します。
plan.mdファイルには、アップグレード戦略、リファクタリング アプローチ、依存関係パス、リスク軽減策が文書化されています。Execution: Copilot は、
tasks.mdの検証基準を持つ、計画を順次具体的なタスクに分割します。 各タスクは、1つの変更と、それが成功したことをCopilotがどのように確認するかを記述します。
次に進む前に、 .github/upgrades/{scenarioId} の Markdown ファイルを編集してアップグレード手順を調整するか、コンテキストを追加します。
アップグレード戦略
評価段階では、エージェントによってソリューションが評価され、次のいずれかの戦略が推奨されます。
| 戦略 | 最適な用途 | Description |
|---|---|---|
| ボトムアップ | 深い依存関係グラフを持つ大規模なソリューション | 最初にリーフ プロジェクトをアップグレードしてから、上に向かって動作します。 |
| トップダウン | メイン アプリケーションに関するクイック フィードバック | 最初にアプリケーション プロジェクトをアップグレードしてから、依存関係を修正します。 |
| 一度にすべて | 小規模でシンプルなソリューション | すべてのプロジェクトを 1 回のパスでアップグレードします。 |
フロー モード
エージェントは、入力の一時停止量を制御する 2 つのフロー モードをサポートしています。
- 自動: エージェントは、一時停止することなくすべての段階を通して動作し、本物のブロッカーでのみ停止します。 経験豊富なユーザーや簡単なアップグレードに最適です。
- ガイド: エージェントは各ステージ境界で一時停止するため、続行する前に評価、計画、タスクを確認できます。 初めてのユーザーや複雑なソリューションに最適です。
モードを切り替えるには、" 一時停止" (ガイド モードに入る場合) または "続行" (自動モードに切り替える) を指定します。
ステート管理
エージェントは、すべてのアップグレード状態を .github/upgrades/{scenarioId}/に格納します。 フォルダーには次のものが含まれます。
| ファイル | Purpose |
|---|---|
assessment.md |
ソリューションの分析 |
upgrade-options.md |
確認されたアップグレードの決定 |
plan.md |
順序付けされたタスクプラン |
tasks.md |
ライブ進行状況ダッシュボード |
scenario-instructions.md |
エージェントの永続メモリ (基本設定、決定、カスタム命令を含む) |
tasks/{taskId}/task.md |
タスクごとのスコープとコンテキスト |
tasks/{taskId}/progress-details.md |
タスクごとの実行に関するメモと結果 |
すべての状態はこのフォルダーに存在するため、IDE を閉じたり、セッションを切り替えたり、開発環境を切り替えたりすることもできます (たとえば、VS Code で開始し、Visual Studioで続行します)。 エージェントは中断した場所から再開します。
Tip
.github/upgrades/ フォルダーをブランチにコミットします。 コミットされた状態はバックアップとして機能し、チーム メンバーはアップグレードの進行状況を表示できます。
アップグレードを実行する
各ステージが完了したら、必要に応じて生成されたファイルを確認して変更し、次のステージに進むようCopilotに指示します。
Execution ステージに到達したら、アップグレードを開始するようにCopilotに指示します。 Copilot が問題に陥った場合、原因を特定し、修正プログラムを適用しようとします。 Copilot が問題を修正できない場合は、ヘルプを求められます。 介入すると、Copilot行った変更から学習し、問題が再び発生した場合に自動的に適用しようとします。
アップグレードの結果
Copilot は、各タスクを実行すると、tasks.md内の.github/upgrades/{scenarioId} ファイルをすべてのステップの状態で更新します。 このファイルを確認して進行状況を監視します。 Copilotプロセスのすべての部分に対して Git コミットを作成するため、変更をロールバックしたり、変更内容を確認したりできます。
アップグレードが完了すると、Copilotチャット応答に次の手順が表示されます。
テレメトリ
このツールは、プロジェクトの種類、アップグレードの意図、およびアップグレード期間に関するデータを収集します。 開発環境はデータを収集して集計し、ユーザーを特定できる情報は含まれません。 Microsoft のプライバシー ポリシーの詳細については、「 Visual Studio カスタマー エクスペリエンス向上プログラム」を参照してください。
関連するコンテンツ
.NET