GitHub Copilotアップグレードとは

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フィードバックを評価し、それを使用してエージェントを改善します。 次のいずれかのオプションを使用してフィードバックを残します。

前提条件

エージェントを使用する前に、開発環境で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 では使用できません。 各パネルの詳細については、「 アップグレード ダッシュボードを使用したアップグレードの監視」を参照してください。

どのように機能するのか

アップグレードまたは移行プロセスを開始するには、次を参照してください。

  1. 次のいずれかの方法を使用してエージェントを起動します。

    • Visual Studio: ソリューション エクスプローラーModernize を選択します。 または、GitHub Copilot Chat ウィンドウを開き、「@Modernize」と入力します。
    • Visual Studio Code: GitHub Copilot Chat パネルを開き、「@upgrade」と入力します。
    • GitHub Copilot CLI: 「@upgrade」と入力し、アップグレードまたは移行要求を続けます。
    • GitHub Copilot アプリ: エージェント ピッカーで、Upgradeを選択します。
  2. アップグレードまたは移行する内容をエージェントに伝えます。

アップグレード エージェントにアプリのアップグレードを依頼Copilot、Git リポジトリで作業している場合は、最初に新しいブランチを作成するように求められます。 次Copilotプロジェクトを評価し、3 段階のワークフローを実行します。 各ステージでは、リポジトリ内の .github/upgrades/{scenarioId} の下に Markdown ファイルが生成されるため、続行する前に次の内容を確認できます。 .github/upgrades/{scenarioId}が以前の試行から既に存在する場合、Copilot は続行するか、新たに開始するかを尋ねます。

Copilotは、プロジェクトの構造、依存関係、およびコード パターンを調べて包括的な評価を構築することから始めます。 assessment.md ファイルには、破壊的変更、API 互換性の問題、非推奨のパターン、アップグレード スコープが一覧表示されます。

評価後、Copilotは次の 3 つのステージを実行します。

  1. Assessment: Copilot は、プロジェクト構造、依存関係、コード パターンを調べ、アップグレード戦略 (ボトムアップ、トップダウン、一括)、プロジェクトアップグレードアプローチ、テクノロジモダン化オプション、互換性処理など、レビューの戦略決定を提示します。 Copilotは、確認された決定を upgrade-options.md に保存します。

  2. Planning: Copilotは、評価と確認されたオプションを詳細な仕様に変換します。 plan.md ファイルには、アップグレード戦略、リファクタリング アプローチ、依存関係パス、リスク軽減策が文書化されています。

  3. 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 カスタマー エクスペリエンス向上プログラム」を参照してください。