GitHub Copilotモダン化エージェントは、scenarios と呼ばれる、管理されたエンドツーエンドの最新化ワークフローを提供します。 各シナリオでは、実際の C++ モダン化作業における特定の種類のアクティビティについて説明します。 このページでは、エージェントがプロジェクトに対して何を実行できるかを理解できるように、使用可能なシナリオとスキルについて説明します。
シナリオ
シナリオは、特定の種類のモダン化アクティビティをガイドするマネージド ワークフローです。
シナリオの検出方法
シナリオ名を覚える必要はありません。 エージェントはプロジェクトの種類を検出し、関連するシナリオを自動的に提案します。
エージェントがサポートするシナリオの一覧を表示するには、GitHub Copilot チャット ウィンドウで "プロジェクトで使用できるシナリオは何ですか?"% に問い合わせてください。
使用可能なシナリオ
| Scenario | プロジェクト タイプ | Description | プロンプトの例 |
|---|---|---|---|
| MSVC ビルド ツールのアップグレード (MSBuild) |
.sln、.vcxproj |
MSBuild ベースのプロジェクト (.sln、 .vcxproj) を新しいバージョンの MSVC ビルド ツールにアップグレードし、アップグレード関連のビルドの問題を解決します。 |
"インストールされている最新バージョンの MSVC ビルド ツールを使用するようにプロジェクトをアップグレードする" |
| MSVC ビルド ツールのアップグレード (CMake) | CMake | 新しいバージョンの MSVC ビルド ツールを使用してプロジェクトを構成した後、CMake ベースのプロジェクトでのアップグレード関連のビルドの問題を解決します。 | "新しい MSVC ビルド ツールを使用するようにプロジェクトをアップグレードすることによって発生するビルドの問題を解決する" |
Note
他のモダン化シナリオを提案または提案したい場合は、Developer Communityにアクセスしてください。
MSVC ビルド ツールのアップグレード (MSBuild)
このシナリオでは、MSBuild ベースの C++ プロジェクトの完全なアップグレード ワークフローを処理します。
- 再ターゲット: インストールされている最新の MSVC ビルド ツールとプラットフォーム ツールセットをターゲットにするようにプロジェクト設定を更新します。
- ビルド分析: ソリューションをビルドし、アップグレードによって発生したすべてのエラーと警告をカタログ化します。
- コードの更新: 非推奨の API を置き換え、準拠の問題に対処し、破壊的変更に役立ちます。
- 検証: すべての問題が解決されたことを確認するために再構築します。
たとえば、このシナリオでは次のような問題に対処します。
- 非推奨の CRT 関数 (たとえば、
sprintf_sにsprintf。 - C++ 準拠の変更 (たとえば、より厳密なテンプレート解析)。
- MSVC バージョン間の標準ライブラリの変更 (削除、試験的な名前空間など) (
std::tr1など)。 - 新しいツールセットでのエラーとしての警告の昇格。
- Windows SDK から削除された API のリンカー エラー。
MSVC ビルド ツールのアップグレード (CMake)
このシナリオでは、CMake ベースの C++ プロジェクトのアップグレード ワークフローを処理します。
- ビルド分析: プロジェクトをビルドし、アップグレードによって発生したすべてのエラーと警告をカタログ化します。
- コードの更新: 非推奨の API を置き換え、準拠の問題に対処し、破壊的変更に役立ちます。
- 検証: すべての問題が解決されたことを確認するために再構築します。
たとえば、このシナリオでは次のような問題に対処します。
- 非推奨の CRT 関数 (たとえば、
sprintf_sにsprintf。 - C++ 準拠の変更 (たとえば、より厳密なテンプレート解析)。
- MSVC バージョン間の標準ライブラリの変更 (削除、試験的な名前空間など) (
std::tr1など)。 - 新しいツールセットでのエラーとしての警告の昇格。
- Windows SDK から削除された API のリンカー エラー。
シナリオの永続化
アクティブな各シナリオは、 .github/upgrades/{scenarioId}に独自のフォルダーを取得します。 シナリオ フォルダーには、プラン、タスクの進行状況、ユーザー設定、実行ログが含まれています。 フォルダーは Git リポジトリの一部になります。
スキル
スキル は、エージェントがシナリオ内で使用する、より小さく、ターゲットを絞ったモダン化機能です。 アップグレード中にエージェントが特定のパターンを検出すると、関連するスキルと詳細な手順が読み込まれます。
スキルは、エージェントがコードベースで検出した内容に基づいて自動的に読み込まれます。 スキルの読み込みを管理する必要はありません。
Note
現在、C++ モダン化シナリオに固有の追加スキルはありません。