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++。
運作原理
若要開始現代化流程:
- 在 Visual Studio 開啟你的 C++ 專案或解決方案。
- 啟動代理程式:在 方案總管,右鍵點擊您的解決方案或專案,選擇 Modernize。 或者,在 GitHub Copilot Chat 輸入
@Modernize。 - 告訴客服要升級什麼。
如果你的 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重視你的回饋,並用來改進代理程式。 請使用以下任一選項留下回饋: