GitHub Copilot 的 C++ 現代化常見問題集

本常見問題解答了 C++ 使用者對 GitHub Copilot 現代化的常見問題。

概述

什麼是 GitHub Copilot 對 C++ 的現代化?

GitHub Copilot C++ 現代化是一個針對 Visual Studio 的 GitHub Copilot 代理程式,幫助你現代化並升級 C++ 專案到更新的工具、函式庫和模式。 它會辨識特定任務,例如將 MSVC 建置工具升級至新版本,並提供額外的工具與指示以完成這些任務。 它自動化評估、規劃與執行,以完成現代化任務,你可以以全自動模式或引導模式執行,允許你核准每個步驟並提供額外指導。

支援哪些開發環境?

GitHub Copilot C++ 現代化支援可於 Visual Studio 2026 18.7 及更新版本中取得。

我需要訂閱 GitHub Copilot 嗎?

Yes. 你需要有有效的 GitHub Copilot 訂閱才能使用現代化代理。

我的程式碼會被送到外部服務嗎?

GitHub Copilot根據GitHub的Copilot隱私政策處理程式碼片段。 程式碼不會被保留超過當下會話。 像 和 scenario-instructions.md 這類工作流程檔案tasks.md會留在你的儲存庫中,不會傳送到外部服務。

MSVC 升級情境

支援哪些專案類型?

該代理支援以下專案類型:

  • 以 MSBuild 為基礎的專案(.sln.vcxproj)。
  • 基於 CMake 的專案。

該代理目前不支援 Unreal Engine 專案(.uproject)。

代理實際上在我的程式碼中改變了什麼?

代理程式會修改原始碼,以解決升級至新版 MSVC 建置工具時產生的建置錯誤與警告。 常見變更包括替換棄用的 API、修正因使用更符合規範的編譯器所產生的問題、更新移除或重新定位標頭的包含指令,以及解決函式庫變更所引起的連結錯誤。 當你的專案在 git 倉庫中時,所有變更都會被提交,方便你審查並還原個別修改。

我可以控制代理程式變更哪些內容嗎?

Yes. 你可以在執行開始前審查並核准計畫,告訴客服跳過特定問題或任務,並在 中提供偏好 scenario-instructions.md設定。 你也可以暫停執行、將代理重新導向,或還原代理所做的任何提交。

客服會做測試嗎?

代理程式會在每個任務後建立專案來驗證變更。 如果你的專案在建置過程中執行測試,這些測試也會一併執行。 你也可以告訴代理跳過特定任務的測試驗證。

如果經紀人犯錯怎麼辦?

攔下客服,立刻告訴他。 當你告訴客服恢復時,它會自動調整並套用修正。 你也可以執行 git revert HEAD、要求代理程式嘗試不同的方法,或手動修正。

欲了解更多資訊,請參閱 GitHub Copilot C++ 現代化的疑難排解

我可以只升級部分解決方案嗎?

Yes. 告訴代理人要升級哪些專案,例如代理人 Upgrade only the CoreLib project to the latest MSVC Build Tools. 會將工作範圍限定在你指定的專案上。

國家與會議

代理人將其狀態儲存在哪裡?

所有狀態都位於你儲存庫中的 .github/upgrades/{SCENARIO ID}。 這包括評估、計畫、任務進度、您的偏好以及執行日誌。

我可以恢復中斷升級嗎?

Yes. 你可以隨時關閉 Visual Studio 或結束聊天會話。 當你開始新對話時,代理會偵測到現有狀態,並從中斷處繼續。

我應該提交 .github/upgrades 資料夾嗎?

Yes. 將資料夾提交到你的分支可以備份升級進度,讓團隊成員查看升級狀態,並幫助代理從正確狀態恢復。 升級完成後你可以移除該資料夾。

多人可以同時處理同一個升級嗎?

裡面 .github/upgrades 的狀態檔案可以透過 Git 分享。 然而,為避免變更衝突,同一時間應只有一人主動與代理人互動。

相容性

我可以從哪些 MSVC 建置工具版本升級?

代理程式支援從任何較早期版本的 MSVC 建置工具升級到你 Visual Studio 安裝支援的最新版本。

代理程式是否負責第三方函式庫相容性?

代理人在評估時會發現第三方函式庫相容性問題。 當有替代方案或變通方案時,它會建議。 如果函式庫與目標工具組不相容,代理會記錄問題,讓你決定如何處理。

我可以用預先編譯好的標頭來使用代理程式嗎?

Yes. 代理程式了解預先編譯的標頭設定,並在升級過程中予以考慮。