GitHub Copilot appの.NETモダナイゼーション更新|変更点・利用条件・テスト注意点

.NETアプリのアップグレードでは、依存関係の調査、移行方針の決定、コード修正、ビルドエラーの解消、テストまでを継続的に管理する必要があります。GitHub Copilot appの今回の更新では、これらの工程を一つの画面で確認・操作できる「対話型アップグレードキャンバス」が追加されました。

結論として、既存の.NETアプリが自動的に変更されたり、従来のVisual StudioやVisual Studio Codeでの運用が使えなくなったりする更新ではありません。すぐに対応が必要なのは、.NET Frameworkや旧.NETからの移行を予定している組織、またはCopilotによる変更内容をチャットだけでなく視覚的に管理したいチームです。既にGitHub Copilot modernizationを利用している場合も、強制的な移行は不要で、GitHub Copilot appを追加の操作画面として評価できます。(Microsoft for Developers)

目次

GitHub Copilot appの.NETモダナイゼーション更新とは

Microsoftの.NET Blogでは、公式ページ上で2026年7月9日付として「Modernize .NET applications in the GitHub Copilot app」が公開されました。本記事では、指定された2026年7月10日の実質更新として内容を整理します。(Microsoft for Developers)

今回追加された中心機能は、GitHub Copilot app内で利用できるInteractive Upgrade Canvasです。画面上では「Upgrade Dashboard」として開き、次の情報を一つのビューで確認できます。

  • 対象アプリケーションの評価結果
  • NuGetパッケージやAPIの互換性問題
  • アップグレード方針
  • 実装タスクと進捗
  • 変更されたコード
  • ビルドエラー
  • 実行結果と残作業

これまでのGitHub Copilot modernizationでは、チャット、生成されたMarkdownファイル、ソースコードの差分を行き来しながら状況を把握する必要がありました。新しいキャンバスでは、評価から実行までの状態をライブ表示し、作業の確認と方向修正を行いやすくしています。(Microsoft for Developers)

名称の違いを整理

公式情報では似た名称が使われているため、次のように整理すると理解しやすくなります。

名称意味
GitHub Copilot modernization.NETアップグレードやAzure移行を支援する機能全体
GitHub Copilot upgradeアップグレード処理を担当するエージェントまたはプラグイン
UpgradeGitHub Copilot appなどのAgent Pickerに表示されるエージェント名
Upgrade Dashboard対話型アップグレードキャンバスを開く画面
.github/upgrades/評価結果、計画、タスク、進捗を保存するリポジトリ内フォルダー

名称は異なりますが、評価、計画、実行という基本ワークフローは共通です。(GitHub)

今回の更新で何が変わったのか

主な変更点は、アップグレードエンジンそのものよりも、進捗確認と人間による介入方法の改善です。

項目従来の運用GitHub Copilot appの新しい運用
評価結果assessment.mdを開いて確認キャンバス上で確認
移行方針チャットとupgrade-options.mdで確認キャンバスから全体像を確認
計画plan.mdを個別に開く評価結果と関連付けて確認
タスク進捗tasks.mdを開いて追跡ライブ表示で追跡
ビルドエラーチャットや出力ログを確認アップグレードの流れの中で確認
コードレビューエディターやGit差分へ移動レビューパネルと連携して確認
操作の修正チャットで追加指示キャンバスとチャットを使って方向修正

従来のMarkdownファイルが廃止されたわけではありません。キャンバスは、リポジトリ内に保存される評価・計画・タスク情報を見やすくし、操作しやすくするための追加インターフェースです。(Microsoft for Developers)

変わらない点と既存実装への影響

今回の更新によって、運用中の.NETアプリケーションや本番環境が自動的に書き換えられることはありません。利用者がリポジトリを開き、Upgradeエージェントを選択してアップグレードを開始した場合にのみ、評価やコード変更が行われます。(Microsoft for Developers)

また、次の基本仕様は従来どおりです。

  • 評価、計画、実行の3段階で進む
  • アップグレード方針を人間が確認・変更できる
  • Gitのブランチとコミットを利用して変更を分離できる
  • 状態は.github/upgrades/{scenarioId}/に保存される
  • Visual Studio、Visual Studio Code、GitHub Copilot CLIでも利用できる
  • ビルドとテストを実行して変更を検証する
  • エージェントが解決できない問題では利用者の判断を求める

GitHub Copilot appを導入しても、既存のVisual StudioやVisual Studio Code中心の開発手順を置き換える必要はありません。キャンバスによる可視化が必要なメンバーだけがアプリを利用し、実装担当者は従来のIDEを使い続ける構成も可能です。(Microsoft for Developers)

既存のアップグレード状態は引き継げるのか

GitHub Copilot modernizationは、評価結果や計画、進捗をリポジトリ内の.github/upgrades/{scenarioId}/に保存します。Microsoft Learnでは、この状態を利用してセッションを終了した後に再開したり、Visual Studio CodeからVisual Studioへ開発環境を切り替えたりできると説明されています。(Microsoft Learn)

GitHub Copilot appも同じUpgradeワークフローを利用するため、設計上は既存の状態ファイルを活用できます。ただし、初回導入時は次の点をテストブランチで確認してください。

  • 既存のscenarioIdが正しく認識されるか
  • tasks.mdの完了状態がキャンバスに反映されるか
  • 手動編集したplan.mdscenario-instructions.mdが読み込まれるか
  • 利用中のプラグインとアプリのバージョンが一致しているか
  • IDE側とアプリ側で同じブランチを同時編集していないか

特に並行編集は、タスク状態や計画ファイルの競合につながります。一つのアップグレードシナリオを複数の環境で同時実行するのではなく、作業担当と使用環境を明確に分けるのが安全です。

対応が必要かを判断する基準

利用状況対応要否推奨対応
.NETアップグレードの予定がない原則不要情報収集のみでよい
Visual StudioのModernizeを利用中任意キャンバスの必要性を評価する
Visual Studio CodeやCLIでアップグレード中任意既存状態を複製した検証ブランチで試す
.NET Frameworkから現行.NETへ移行予定対応を推奨小規模プロジェクトで先行検証する
大規模ソリューションを移行予定段階導入代表的な1プロジェクトから試す
テストが少ないレガシーシステム慎重に導入先に回帰テストを追加する
金融、医療、行政など変更管理が厳しい管理策が必要Guidedモードと人手レビューを必須にする
非Git管理のソースコード事前対応が必要ローカルGitを初期化してベースラインを保存する

この機能は「移行作業を完全自動化するツール」ではなく、AIエージェントと人間が評価・計画・修正を分担するためのワークフローです。テストが少ないシステムや、仕様を把握している担当者がいないシステムでは、導入前の準備に時間をかける必要があります。(Microsoft Learn)

利用条件

GitHub Copilot appで.NETモダナイゼーションを利用するには、アプリ本体に加えてUpgradeエージェントのプラグインを追加します。

GitHub Copilot app側の条件

  • GitHub Copilot appがインストールされていること
  • GitHubアカウントでサインインできること
  • GitHub Copilotを利用できるプランがあること
  • BusinessまたはEnterpriseでは、管理者がCopilot CLIポリシーを有効にしていること
  • microsoft/upgrade-agent-pluginsマーケットプレイスを追加できること
  • upgrade-agentプラグインをインストールできること

GitHub公式ドキュメントでは、GitHub Copilot appはすべてのCopilotプランで利用でき、Windows、Linux、macOSをサポートしています。一方、Copilot BusinessとCopilot Enterpriseでは、管理者によるCopilot CLIポリシーの有効化が必要です。(GitHub Docs)

.NETプロジェクト側の条件

GitHub Copilot modernizationは、C#およびVisual Basicのプロジェクトを対象としています。主な対応プロジェクトは次のとおりです。

  • ASP.NET Core、MVC、Razor Pages、Web API
  • ASP.NET Web Forms
  • Blazor
  • Azure Functions
  • WPF
  • Windows Forms
  • WinUI
  • .NET MAUI、Xamarin
  • クラスライブラリ
  • コンソールアプリ
  • MSTest、NUnit、xUnitのテストプロジェクト

主なフレームワークアップグレード経路は、.NET Frameworkから.NET 8以降、.NET Core 1.x~3.xから.NET 8以降、.NET 5以降から.NET 8以降です。.NET Frameworkを維持しながら4.8.1へ更新する経路も示されています。(Microsoft Learn)

Gitリポジトリに関する公式情報の差

Gitの扱いについては、公式ドキュメント内に記述の差があります。

GitHub Copilot modernizationのFAQでは、制限事項として「ローカルGitリポジトリが必要」と記載されています。一方、ベストプラクティスとトラブルシュートでは、Git管理されていないフォルダーでも動作するものの、ブランチやコミットを作成せず、ファイルへ直接変更を適用すると説明されています。(Microsoft Learn)

実務では、この差を「非Gitでも安全に使える」と解釈しない方がよいでしょう。次のように、Gitを事実上の必須条件として扱うことを推奨します。

git init
git add .
git commit -m "Baseline before Copilot modernization"

Gitを使えば、タスクごとの変更確認、問題のあるコミットの取り消し、元ブランチへの復帰が容易になります。

Visual Studio、VS Code、CLIとの違い

利用環境導入方法主な特徴
GitHub Copilot appマーケットプレイスとUpgradeプラグインを追加Upgrade Dashboardを利用できる
Visual Studioプロジェクトを右クリックしてModernizeを選択ソリューションエクスプローラーと統合
Visual Studio CodeGitHub Copilot upgrade拡張機能を導入エディター内でUpgradeエージェントを利用
GitHub Copilot CLIマーケットプレイスとプラグインをコマンドで追加ターミナル中心で操作できる

Visual Studioで利用する場合、公式ドキュメントではWindows、Visual Studio 2026またはVisual Studio 2022 17.14.17以降、GitHub CopilotとGitHub Copilot app modernizationのオプションコンポーネントが条件として示されています。Visual Studio CodeではGitHub Copilot拡張機能とGitHub Copilot upgrade拡張機能、CLIではGitHub Copilot CLIが必要です。(Microsoft Learn)

GitHub Copilot app固有の価値は、コードを直接編集しやすいことではなく、評価から実行までをキャンバスで追跡できる点です。コードの細かな修正はIDE、全体進捗の確認やレビューはアプリという役割分担も考えられます。

GitHub Copilot appでUpgrade Dashboardを導入する手順

事前にビルドとテストを成功させる

アップグレード前に、現在のソースコードで次を実行します。

dotnet restore
dotnet build
dotnet test
git status

既存のビルドエラーやテスト失敗が残っていると、エージェントが「もともとの問題」と「アップグレードで発生した問題」を区別できません。既知のテスト失敗を残す場合は、scenario-instructions.mdに明記します。(Microsoft Learn)

Upgradeプラグインを追加する

  1. GitHub Copilot appをインストールしてサインインします。
  2. 公式のUpgradeマーケットプレイス追加リンクを開きます。
  3. 「Add plugin marketplace?」で「Allow」を選択します。
  4. Plugins画面で「Add marketplace」を選択します。
  5. upgrade-agent-pluginsを展開します。
  6. upgrade-agentの「Install」を選択します。
  7. リポジトリを開き、新しいエージェントセッションを開始します。
  8. Agent Pickerで「Upgrade」を選択します。

GitHub Copilot appのバージョンが1.0.3より前の場合、プラグインをインストールした後にアプリの再起動が必要とされています。Upgradeエージェントが表示されない場合は、最初にアプリの更新と再起動を確認してください。(GitHub)

Upgrade Dashboardを開く

  1. GitHub Copilot app右上のレビューパネルアイコンを選択します。
  2. レビューパネル内の「+」を選択します。
  3. 「Upgrade Dashboard」を選択します。
  4. 対象フレームワークやアップグレード内容を指示します。

例えば、.NET 6から.NET 10へ更新する場合は、次のように対象を具体化します。

Upgrade the DataAccess and WebApi projects from .NET 6 to .NET 10.
Keep the public API backward compatible.
Do not modify generated files.
Use guided mode and commit after each completed task.

単に「全部アップグレードして」と指示するより、対象プロジェクト、目標バージョン、互換性要件、変更禁止ファイルを指定した方が、計画の精度を高めやすくなります。(Microsoft Learn)

生成されるファイルと確認ポイント

アップグレードを開始すると、.github/upgrades/{scenarioId}/に状態ファイルが作成されます。

ファイル確認する内容
assessment.md対象プロジェクト、依存関係、非互換API、対象範囲
upgrade-options.md移行順序、インプレースか並行移行か、互換性方針
plan.md作業順序、パッケージ更新、リスク対策
tasks.md実装タスク、検証条件、現在の進捗
scenario-instructions.mdチーム固有の制約、禁止事項、設計方針
tasks/{taskId}/task.md個別タスクの対象範囲
tasks/{taskId}/progress-details.md実行内容、エラー、修正結果

これらは単なるログではなく、エージェントが次の作業を判断するための状態情報です。削除すると作業を再開できなくなる可能性があるため、アップグレード用ブランチへコミットして管理します。(Microsoft Learn)

ただし、scenario-instructions.mdには機密情報や接続文字列を書かないでください。保存するのは「このモジュールは変更しない」「認証方式は維持する」「公開APIを壊さない」といった設計上の制約に限定します。

企業で導入するときの管理策

最初はGuidedモードを使う

GitHub Copilot modernizationには、主に次の進行方法があります。

  • Automatic:重大な問題が発生するまで自動的に進行する
  • Guided:評価、計画、実行の区切りで停止し、利用者の確認を求める

初回導入や複雑なシステムではGuidedモードを選択し、assessment.mdupgrade-options.mdplan.mdtasks.mdを段階ごとに承認する運用が適しています。公式のベストプラクティスでも、最初のアップグレードではGuidedモードが推奨されています。(Microsoft Learn)

本番ブランチへ直接変更させない

次の運用ルールを設定します。

  • mainやreleaseブランチでは実行しない
  • アップグレード専用ブランチを作る
  • タスク単位でコミットする
  • プルリクエストを必須にする
  • CIの成功だけで自動マージしない
  • パッケージ更新は担当者がバージョンとライセンスを確認する
  • 認証、データベース、公開APIは専門担当者をレビュアーに指定する

小さなコミットに分けることで、正常な変更だけをcherry-pickし、問題がある変更を破棄できます。

プラグインを全社一斉導入しない

最初は次のような小規模な対象が適しています。

  • 依存関係が少ないクラスライブラリ
  • 社内向けの小規模API
  • 十分な単体テストがあるユーティリティ
  • 本番データへ接続しない検証用リポジトリ

公式のベストプラクティスでも、初回は低リスクの小規模プロジェクトを選び、大規模ソリューションでは代表的な1プロジェクトを先に検証することが推奨されています。(Microsoft Learn)

プライバシーとテレメトリを確認する

Microsoft LearnのFAQでは、GitHub Copilot modernizationはコードベースを保存せず、モデルの学習にも利用せず、アップグレード完了後にセッションデータを削除すると説明されています。また、収集するテレメトリは、プロジェクト種別、アップグレード意図、処理時間などの集約情報とされています。(Microsoft Learn)

ただし、企業利用ではこの説明だけで判断せず、契約中のCopilotプラン、組織ポリシー、ネットワーク経路、社内のソースコード持ち出し基準を確認してください。テレメトリは開発環境側のプライバシー設定から無効化できる場合があります。

テスト時に注意すべきポイント

GitHub Copilot upgradeがビルドとテストを成功させても、アプリケーションの動作が完全に維持されたとは限りません。公式FAQでも、提案が常にベストプラクティスに従う保証はなく、トラブルシュートではAIがコンパイルできないコードを生成する可能性が示されています。(Microsoft Learn)

ビルド前の基準値を保存する

アップグレード前に、次の結果を保存しておきます。

  • dotnet --info
  • dotnet restoreの結果
  • ビルド警告とエラー件数
  • 単体テスト件数と成功数
  • APIの応答例
  • 主要画面のスクリーンショット
  • パフォーマンステスト結果
  • NuGetパッケージ一覧
  • データベーススキーマとマイグレーション状態

変更後の結果を基準値と比較することで、単純なテスト成功だけでは見つからない差を確認できます。

テスト対象を機能別に分ける

テスト領域主な確認内容
API互換性URL、HTTPメソッド、ステータスコード、JSON構造
シリアライズnull、列挙型、日付、プロパティ名、既定値
認証・認可Cookie、トークン、ロール、セッション、有効期限
データベースSQL、トランザクション、文字コード、NULL処理
設定web.configappsettings.json、環境変数
DIサービスのライフタイム、循環参照、起動順序
ロギングログレベル、構造化ログ、例外情報
ファイル処理パス、権限、改行、大小文字、共有フォルダー
UIDPI、フォント、入力、レイアウト、印刷
性能起動時間、メモリ、CPU、スループット
セキュリティ脆弱なパッケージ、秘密情報、認可漏れ

特に、Newtonsoft.JsonからSystem.Text.Jsonへの変更、System.Data.SqlClientからMicrosoft.Data.SqlClientへの変更、ASP.NET Web FormsからBlazorへの移行は、コンパイルが成功しても実行時の挙動が変わる可能性があります。GitHub Copilot modernizationにはこれらの専用シナリオが用意されていますが、業務仕様に沿った回帰テストは別途必要です。(Microsoft Learn)

プライベートNuGetフィードを事前確認する

プライベートNuGetフィードを利用している場合は、アップグレード開始前に手動でdotnet restoreを成功させます。認証トークン、Credential Provider、NuGet.config、プロキシ設定が不完全だと、パッケージ互換性ではなく認証エラーで処理が停止します。(Microsoft Learn)

カスタムMSBuild処理を明示する

次のような構成は、エージェントが依存関係を正しく判断できないことがあります。

  • 独自の.targets.props
  • 条件付きImport
  • ビルド時コード生成
  • 外部スクリプトの実行
  • 社内専用SDK
  • 非標準の出力ディレクトリ
  • プロジェクトファイル外で管理する依存関係

該当する場合は、scenario-instructions.mdに「変更してよいファイル」「実行してはいけない処理」「必要なビルド手順」を記載します。(Microsoft Learn)

大規模ソリューションは分割する

50以上のプロジェクトを含むソリューションでは、評価、パッケージ復元、ビルド、修正の反復に時間がかかります。公式ドキュメントでは、関連するプロジェクトをグループ化し、複数回に分けてアップグレードする方法が推奨されています。(Microsoft Learn)

実務では、次の順序が比較的管理しやすくなります。

  1. 共通ライブラリ
  2. データアクセス層
  3. 業務ロジック
  4. Web API
  5. UIプロジェクト
  6. バッチや周辺ツール
  7. テストプロジェクト
  8. デプロイ設定

ただし、依存方向によっては順序を変える必要があります。Upgradeエージェントが提案するBottom-up、Top-down、All-at-onceの方針をそのまま承認せず、実際の依存関係とリリース単位に照らして判断してください。

よくある失敗と対処法

Upgradeエージェントが表示されない

  • GitHub Copilot appを更新する
  • アプリを再起動する
  • upgrade-agentがInstalledになっているか確認する
  • BusinessまたはEnterpriseのCopilot CLIポリシーを確認する
  • Agent Pickerを再度開く

アプリのバージョンが1.0.3より前の場合は、インストール後の再起動が必要です。(GitHub)

「利用できるシナリオがない」と表示される

ワークスペースのルートに.sln.csproj.vbprojのいずれかがあるか確認します。サブディレクトリにある場合は、そのディレクトリをワークスペースとして開くか、対象ファイルを明示します。(Microsoft Learn)

以前の作業を再開できない

.github/upgrades/が削除、破損、Git管理対象外になっていないか確認します。状態ファイルを復元できない場合は、再評価と再計画が必要です。(Microsoft Learn)

同じ修正を繰り返して進まない

エージェントが同じ修正を繰り返す場合は処理を停止し、直前のコミットへ戻します。その上で、問題のAPI、期待する実装方法、使用禁止のパッケージを具体的に指示します。

Stop the current task.

Revert the last change.
Do not use System.Web adapters.
Replace the affected code with native ASP.NET Core APIs.
Show the proposed changes before applying them.

AIによる修正は決定的な変換ではありません。何度実行しても同じ結果になるとは限らないため、再実行前に条件を明文化することが重要です。

対応方針のまとめ

GitHub Copilot appの対話型モダナイゼーションワークフローは、.NETアップグレードの評価、計画、実装、ビルド、テストを一つのキャンバスで追跡できるようにする更新です。既存アプリへ自動適用されるものではなく、Visual Studio、Visual Studio Code、CLIでの従来運用も継続できます。

現時点で.NETアップグレードの予定がなければ、急いで導入する必要はありません。一方、.NET Frameworkやサポート期限が近い.NETからの移行を予定している場合は、次の順序で評価すると安全です。

  1. 現行コードのビルドとテストを成功させる
  2. 小規模で低リスクなプロジェクトを選ぶ
  3. Gitの専用ブランチを作成する
  4. GitHub Copilot appとUpgradeプラグインを導入する
  5. Guidedモードで評価と計画だけを実行する
  6. 人間が計画を修正してからコード変更を許可する
  7. CIに加えて業務機能の回帰テストを実施する

最初の評価では、コード変更の速さよりも、依存関係の検出精度、計画の妥当性、ロールバックの容易さを確認してください。その3点を満たせる場合に、対象プロジェクトと利用者を段階的に拡大するのが現実的です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次