什麼是 GitHub Copilot 的現代化改造?

GitHub Copilot 現代化是一個 GitHub Copilot 代理程式,幫助你升級和現代化你的 C++ 專案。 它會引導你進行評估、解決方案建議、程式碼修正,以及在 Visual Studio 內進行驗證。

劇本

代理提供稱為 情境的端對端現代化工作流程。 每個情境都會引導你完成特定類型的現代化任務。

Scenario Description 範例提示
MSVC 建置工具升級(MSBuild) 將基於 MSBuild 的專案.sln(, .vcxproj)升級為更新版本的 MSVC 建置工具,並解決升級相關的建置問題。 「升級我的專案以使用最新安裝版本的 MSVC 建置工具」
MSVC 建置工具升級(CMake) 在使用較新版本的 MSVC 建構工具設定專案後,解決基於 CMake 專案的升級相關建置問題。 「解決因升級專案以使用較新的 MSVC 建置工具所造成的建置問題」

Note

如果你想提議或支持其他現代化方案,請造訪 開發人員社群

所有劇本的完整參考,請參見 「情境與技能參考」。

先決條件

開始之前,請確定您擁有:

  • Visual Studio 2026 版本 18.7 或更新版本。
  • GitHub Copilot 的訂閱方案。
  • 基於 MSBuild 的程式碼庫(.sln.vcxproj)或基於 CMake 的程式碼庫。

關於詳細的設定步驟,請參見 Install GitHub Copilot modernization for C++

運作原理

若要開始現代化流程:

  1. 在 Visual Studio 開啟你的 C++ 專案或解決方案。
  2. 啟動代理程式:在 方案總管,右鍵點擊您的解決方案或專案,選擇 Modernize。 或者,在 GitHub Copilot Chat 輸入 @Modernize
  3. 告訴客服要升級什麼。

如果你的 Visual Studio 安裝缺少你專案目前使用的 MSVC 建置工具,安裝助理應該會在載入專案時出現。 你可以用設定助理安裝缺少的 MSVC 版本,或是重新定位到已安裝的 MSVC 版本。 如果你重新定位任何專案,會看到資訊欄訊息,直接啟動 Modernize 代理工作流程。

當你要求代理升級專案時,如果你在 Git 倉庫裡,它會提示你建立新分支。 接著它會執行一個三階段的工作流程。 每個階段會在你的倉庫裡產生 Markdown 檔案 .github/upgrades/{scenarioId} ,讓你在繼續前可以先檢視接下來的內容。 如果 .github/upgrades/{scenarioId} 在先前嘗試時已存在,代理程式會詢問你要繼續還是重新開始。

第一階段:評估

代理會檢視您的專案結構、相依性與程式碼模式,並儲存完整的評估資料。assessment.md 客服也會提供策略決策供您檢視,例如升級策略與相容性處理。

第二階段:規劃

代理人會將評估結果轉換成詳細的規格。 plan.md 檔案記載了升級策略、重構方法及風險緩解措施。

第三階段:處決

代理將計畫拆解為序列任務,並以驗證標準為 tasks.md。 每個任務描述單一變更,以及代理如何確認其成功。

流量模式

代理程式支援兩種流程模式:

  • 自動:在所有階段都能順利進行,不會暫停,只在真正的阻擋者處停止。 此模式最適合直接升級。
  • 引導式:在每個階段邊界處暫停,供你複習。 此模式最適合較大或較複雜的升級。

你可以隨時切換模式,透過修改 scenario-instructions.md 或指示客服切換模式。 若以 Automatic 模式運行,您可能需要在 Copilot Chat 提示視窗中按下取消按鈕停止代理,並指示代理以 Guided 模式繼續。

狀態管理

代理人會將所有狀態儲存在 .github/upgrades/{scenarioId}

檔案 Purpose
assessment.md 分析你的解決方案。
plan.md 有序的任務計畫。
tasks.md 即時進度儀表板。
scenario-instructions.md 代理的持久記憶。
execution-log.md 所有變更的稽核軌跡。

你可以關閉 Visual Studio,之後再繼續。 探員接著繼續閱讀州政府檔案。

Tip

如果你想在做其他工作時花較長時間進行升級,可以考慮將 .github/upgrades 資料夾以不同的提交方式提交到你的分支。 已承諾狀態作為備用,讓團隊成員查看升級進度。 不同提交讓你能在合併分支前輕鬆從本地 git 歷史中移除它們,如果你不想讓它們永久提交到你的倉庫。

提供意見反應

Microsoft重視你的回饋,並用來改進代理程式。 請使用以下任一選項留下回饋: