本常見問題解答了 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. 代理程式了解預先編譯的標頭設定,並在升級過程中予以考慮。