感覺 Visual Studio 2022 的生命週期似乎比預期的長?現在已經推出第十二個次版本、版號推進到 17.11 了。
官方的公告是《Visual Studio 2022 v17.11 – Your feedback in action》,C++ 的部分可以參考《What’s New for C++ Developers in Visual Studio 2022 17.11》、詳細的資料則也可以參考官方的 release note。
這次 Visual Studio 內的「新增功能」的視窗列出了數量頗多的改進項目,感覺上回去看官方公告分類過的會比較好看:
- 生產力提升
- 找到您正在尋找的程式碼
- 更有意義的程式碼檢閱(code review)( GitHub / Azure DevOps )
- 熟悉的鍵盤快速鍵
- 偵錯與分析
- 在 Linux 上對您的 CMake 專案進行偵錯
- 將中斷點自動新增至預設群組
- Build Insights QoL 更新(C++)
- 更容易修正的非同步例外狀況(.Net 9+)
- Blazor WebAssembly 偵錯(.Net 9+)
- 輕鬆分析外部程式碼(.Net)
- 具表達力的 IEnumerable 視覺化工具
- 更快速且更一致地進行分析
- IDE 與工作流程
- 永遠不再遺漏安裝某個元件
- 保持更新和安全(透過 Windows Update)
- WinUl 範本優先順序
- 新的 Teams 工具組範本
- 已改進的「資源總管」(.Net)
- 改善的使用者驗證
- GitHub Copilot 的安全性與改進
- AI 生成的中斷點運算式
- 使用 GitHub Copilot 了解您的符號
- 優化您的 GitHub Copilot 建議
- 命名項目變得容易
- GitHub Copilot 變得更安全
- Web 與遊戲開發工具
- 方案總管中的 NPM 套件
- 探索動態 Web API 路由(ASP.NET Core Web API)
- Unreal Engine 整合的改進
- Unreal Engine 「新增類別」範本
- Unreal Engine 新增模組
- Unreal Engine 新增外掛程式
- Unreal Engine 工具列
不過老實說,這邊列了一堆,但是像是 GitHub Copilot 是要另外付錢的、Heresy 這邊用的是內部的 GitLab 而非 GitHub,外加 Heresy 又只有以開發 C++ 為主,所以大部分的新功能其實和 Heresy 都沒什麼關係就是了。 XD
實際上,這次更新的內容,在 C++ 的部分個人是沒有比較大的變化,官方也僅有提供標準函式庫也修改而已。
不過,在偵錯的效能上,官方倒是號稱大幅提高了 C++ 中斷點的處理速度!在處理 80,000 個 iteration 的狀況下,需要的時間從 80 秒大幅縮短成 21 秒;所以預期以後在特定情境下的偵錯速度是可以提高的。
不過在介面上,個人倒是覺得有的東西算是可以看看的。
限定程式碼搜尋的範圍
首先,在 17.5 加入的 all-in-one 搜尋,現在在程式碼搜尋(code search、快速鍵 Ctrl + T)的部分可以去限定搜尋的範圍了~透過限定成方案、專案、或是單一檔案,其實都算是滿實用的!
預設中斷點群組
「中斷點群組」(breakpoint group)這個功能是用來方便管理中斷點、可以一口氣開啟/關閉一群中斷點用的;在複雜的偵錯情境下,算是個實用的功能。
而現在則是可以將某個群組設定成預設群組,這樣以後按 F9 加入中斷點,就會直接放到這個群組裡面。
老實說,算是 Heresy 基本上沒在用的功能?
可以透過 SSH / WSL 來進行 CMake 專案的偵錯
去年底 Heresy 也有在《Visual Studio 2022 的 CMake 專案操作(Windows + Linux)》這篇文章大概介紹過怎麼透過 Visual Studio 來進行 CMake 專案的操作。
而現在則是在選單的「專案」裡面,多了一個「使用 CMake 偵錯設定」(Configure Cache with CMake Debugging)快取的選項,
理論上透過這個選項,應該是可以使用 Visual Studio 來偵錯 CMake 腳本和 CMakeLists.txt ?
在專案提供需要的元件設定
在 17.5 的時候,Visual Studio 提供了一個「.vsconfig
」的設定檔案格式,讓使用者可以透過這個設定檔來指定要安裝 Visual Studio 的那些元件。
而現在如果把這種檔案放在方案的跟目錄的話,那 Visual Studio 在開啟方案的時候,就會去檢查需要的元件是否都有安裝?沒有安裝的話,他也會跳出警告、讓使用可以快速安裝缺少的元件。
如果想要建立這樣的設定的話,可以在方案管理員裡面,選擇方案後按右鍵、在「加入」裡面就可以看到「安裝組態檔」了。
點選之後,它會叫出 Visual Studio Installer 來進行匯出的動作。
這邊他預設是會把目前安裝的東西都列進來,所以會建議點選「檢閱詳細資料」來做篩選、把沒必要的東西拿掉。(老實說這樣還是一堆沒必要的原件)
之後也可以打開匯出的 .vsconfig
檔案來編輯(JSON 格式),甚至在裡面額外加入必要的延伸模組。(詳細的說明可以參考官方文件。)
之後其他人如果再沒有必要的元件或延伸模組的情況下開啟方案,在方案總管就會跳出警告、並可以安裝。
在個人來看,這個設計對於多人協同開發是相當實用的!這邊以後應該也會替既有的專案加上這樣的設定檔案吧~
終於修正的 OpenMP 翻譯
Visual Studio 在 C++ 專案裡面針對 OpenMP 的設定選項翻譯應該是錯很久了,一直以來都是把「OpenMP Support」翻譯成不知所云的「開啟 MP 支援」。
印象中 Heresy 很久以前就向微軟反映過,但是沒有下文。不過今年五月的時候又反映一次(連結),這次倒是終於修正成「OpenMP 支援」了。
大概就是這樣了?
相較於之前的 17.10 由於次版號進位到十位數、導致不少軟體函示庫產生版本誤判、支援的問題(可參考《Visual Studio 使用 C++ 時混亂的版本編號》),如果有修正的話在這個版本應該是不會再出現了?但是像是 Boost C++ Libraries 目前還是 1.85.0、所以如果要建置的話可能還是得手動修正了。
而雖然說其實沒什麼差,但是個人還是比較好奇,到底什麼時候會改大版號? XD