この記事は、GitHub Copilotモダン化を使用して C++ プロジェクトをアップグレードする場合の一般的な問題を解決するのに役立ちます。 ここで説明していない問題が発生した場合は、Help>Send Feedback>Visual Studioで問題を報告を使用します。
開始する前に
ソリューションまたはプロジェクトがビルドされていることを確認する
MSVC アップグレード シナリオの場合、エージェントはソリューションまたはプロジェクトをビルドして変更を検証します。 開始する前にソリューションまたはプロジェクトが既に破損している場合、エージェントは既存の問題とアップグレードによって発生した問題を区別するのが難しくなります。
ビルドの問題がわかっている場合は、 カスタム手順で文書化し、評価段階でエージェントがコンテキストを要求したときに応答で提供するか、エージェントが無視することを認識できるように scenario-instructions.md に追加します。
コミットされていない作業をコミットまたは隠す
クリーンな作業ディレクトリから始めます。 エージェントの動作に合わせてコミットが行われ、コミットされていない変更とエージェントの変更が混在すると、変更の確認や元に戻すのが困難になります。
git stash
git status
Git 以外のリポジトリをバックアップする
エージェントは、ソース管理下にないフォルダーを操作することもできます。 プロジェクトが Git リポジトリにない場合、エージェントは分岐操作とコミット操作をスキップします。 必要に応じて復元できるように、開始する前にプロジェクト フォルダーをバックアップします。
Tip
リモートにプッシュしない場合でも、開始する前にローカル Git リポジトリを初期化することを検討してください。 これにより、個々の変更をロールバックし、進行状況を段階的に追跡できます。
Example:
git init
git add
git commit -m "Initial Commit"
自分とエージェントが完了したら、git を引き続き使用したくない場合は、作業ツリー内の現在のコードが必要であることを確認し、.gitを実行したディレクトリ内のgit init ディレクトリを削除します。
一般的な問題
エージェントがCopilot Chatに表示されない
Symptoms: GitHub Copilot チャット ウィンドウに「@Modernize」と入力しても、エージェントはアクティブ化されず、Modernize は ソリューション エクスプローラー コンテキスト メニューに表示されません。
解決策:
- Help>About Microsoft Visual Studio でVisual Studioがバージョン 18.7 以降であることを確認します。
- ステータス バーのCopilot アイコンを確認して、GitHub Copilotがアクティブであることを確認します。
- Tools>Options>GitHub>Copilot>C/C++ で、この機能が有効になっていることを確認してください。 次に、GitHub Copilot による C++ 向けモダナイゼーションを有効にする を選択します。
- 設定を変更した後、Visual Studioを再起動します。
エージェントがループにはまる
症状: エージェントは、進展がないまま同じ修正を何度も試みます。
解決策:
- Copilot Chat プロンプト ウィンドウで [キャンセル] ボタンを使用してエージェントを停止し、プロンプトで監視している内容を説明し、エージェントを再開するためのプロンプトを送信します。
- 手動修正を行い、変更内容をエージェントに伝えます。 エージェントは修正から学習します。
- エージェントに別の方法を試すように依頼します。 たとえば、GitHub Copilot チャット ウィンドウに「"この修正プログラムが機能しません。別の戦略を試してください。"
- 必要に応じて、最後の変更を元に戻すか元に戻し、タスクを再起動します。
大規模なソリューションの所要時間が長すぎます
症状: 多くのプロジェクトを含む大規模なソリューションのアップグレードには、非常に長い時間がかかるか、ストールしているようです。
解決策:
- パイロットとして 1 つの代表的なプロジェクトから始めます。 これにより、全身的な問題が早期に発生します。
-
tasks.mdで.github/upgrades/{SCENARIO ID}を確認して進行状況を監視します。 - セッションがタイムアウトした場合は、新しいセッションを開始します。 エージェントは中断した場所から再開します。
復旧戦略
すべての変更を元に戻す
アップグレードに Git ブランチを使用した場合は、すべてを元に戻します。
git checkout your-original-branch
git branch -D upgrade-branch
元のコードは手つかずです。
最後の変更を元に戻す
最新のコミットを元に戻します。
git revert HEAD
または、エージェントに指示します。 Revert the last change.
特定のステージから再起動する
エージェントのプランが機能していない場合は、次のようなプロンプトを送信して、前のステージから再起動します。
Let's redo the plan. I want a different approach to the conformance issues.Go back to the assessment and reconsider the upgrade strategy.
新たに開始する
.github/upgrades/{SCENARIO ID} フォルダーを削除し、エージェントとの新しい会話を開始します。 最初から始まります。
ヘルプを取得する
問題を解決できない場合:
- Help>Send Feedback>Visual Studioで問題を報告を使用します。
- 可能であれば、
execution-log.mdの.github/upgrades/{SCENARIO ID}の内容を含めます。