Visual Studio 2022 17.4

Visual Studio 2022 的第四次大更新來了~官方的更新公告是《Visual Studio 2022 17.4 is now available!》,感覺比較大的點,包括了:

  • .Net 7
  • 正式支援 Arm64
  • Git 支援多 repository
  • Microsoft Teams Toolkit
  • Productivity(IDE 新功能)
  • 效能改善

而在開啟 Visual Studio 後的新功能頁面,則是列出了下面的新功能:

  • 在 .gitignore 中取消追蹤變更
  • 選取範圍相符項目醒目提示
  • 內嵌重新命名
  • 多存放庫支援
  • 文件大綱

如果要更完整的功能,則應該就是要參考 release note 了。


這邊,則來稍微介紹一下一些 Visual Studio 的新功能。

支援 ARM64

這是第一個原生支援在 Arm 的處理器上進行 Arm64 的程式建置、偵錯的版本。

有興趣請參考《Arm64 Visual Studio is officially here!》。

復原安裝版本(Rollback)

現在開始如果升級 Visual Studio 的版本後,發現有問題不能用的話,可以透過安裝程式的「復原」功能,還原到之前的版本。

這功能在某些特定的狀況下,應該算是會有用的?

Git 支援更新

一個主要的更新,就是允許同一個方案裏面有最多 10 個 Git repository,並可以同時對多個 repository 進行 commit、push、pull 等操作。

如果同一個方案裡面,有專案是來自不同的 repository,右下角的 repository 資訊就會顯示對應的狀態:

要推送的時候,也可以同時推送給的兩個遠端的 repository。

詳細的說明可以參考《Multi-repo Support in Visual Studio》,不過老實說個人不知道什麼時候會要這樣玩?

另外,現在也可以在方案總管中,透過右鍵選單將檔案加到 .gitignore 裡面、取消追蹤。

音訊提示

在工具、選項、文字編輯器、一般中,現在有個「啟用音訊提示」的選項。在開啟這功能後,之後在編輯程式碼的時候,只要輸入游標切換到有問題、有中斷點的那一行的時候,就會發出對應的聲音做提示。

而如果是在比對程式碼差異的時候,移動到有刪除、新增行的地方,也會有聲音。

觸發條件總共有五個,可以在 Windows 的聲音控制(右圖)中來各別控制。

基本上,這是個個人覺得有點謎的功能?

凸顯與選取區域相符的內容(Selection Match Highlighting)

現在在文字編輯器中選取文字後,除了會在編輯區域中把和選取內容相符的文字加上底色外,還會在捲軸上也用顏色凸顯出來,方便使用者知道整份文件中,還有哪裡有相同的字串。

不過…Heresy 怎麼覺得這功能上一版就有了?o_O


由於 Heresy 自己主要是以 C++ 開發為主,所以這邊還是來特別看一下和 C++ 有關的部分了~這部份則可以參考官方的《What’s New for C++ Developers in Visual Studio 2022 version 17.4》這篇。

編譯器的診斷功能改善

根據該文的說法,這次比較大的改善應該是編譯器內部、針對 conceptranges 這類新語法的診斷(diagnostics)功能;而改善的結果,主要會是在編譯器吐錯誤訊息的時候了~

更詳細的資訊,則可以參考《The Future of C++ Compiler Diagnostics in MSVC and Visual Studio》這篇文章。

此外,在警告的部分似乎也有做相當的修改(參考)。

Dev Container

再來,則是開始支援 CMake 專案的「Dev Container」功能。

這項功能基本上應該就是透過預先安裝好所有必要開發工具的 Docker 的容器,來進行專案的跨平台建置;官方也有提供一個範例專案(連結)可以讓使用者測試,不過 Heresy 這邊好像沒能成功?

Heresy 這邊其實也是用類似的方法在玩的,但是因為沒有在用 CMake,所以沒有辦法使用這個方法來整合就是了…認真講,好像應該花點時間來研究看看怎麼樣在 Visual Studio 裡面透過 WSL 來建置、偵錯了?

更詳細的資訊,可以參考《Dev Containers for C++ in Visual Studio》。

IDE 改進

這次微軟號稱針對方案進行索引的速度又有在做強化,在開啟大型方案的時候,號稱和 17.3 相比、會有 20-35% 的改善。

此外,以往在透過「建立宣告/定義」的功能的時候,編輯器都會透過「peek」的形式、在該行的下方顯示一個小視窗來顯示對應的內容。

而現在則可以在設定中調整他的行為模式,設定成不要預覽、或是直接開啟對應的文件。
設定的位置是:工具、選項、文字編輯器、C/C++、進階,「重構」裡面的「CreateDeclDefNavigation_Exp」(好像沒翻譯到? XD)。

C++23

在新的 C++ 標準的支援部分,這次也有再繼續強化,目前使用 /std:c++latest 來建置的話,也已經支援部分 C++23 的功能了。


其他的部分,這次的更新也還有一些個人覺得實用的小改變:

  • 輸出視窗多了一個時鐘圖示的按鈕、是「顯示時間戳記」,可以在輸出的紀錄前面加上時間。
  • 在文字編輯器中壓住 shift 鍵在轉動滑鼠滾輪會變成水平捲動。

這兩者在 Heresy 來看也算是實用的。

而在效能改善的部分,他是號稱在切換 Git 的分支、C++ 的索引、在檔案中搜尋取代、單元測試等等部分,都有相當程度的改善。

另外,針對 .Net 的程式,DataTable Visualizer 的部分也有做改進。他可以在偵錯時針對資料表去做排序、過濾、匯出。(參考

老實說,這個功能感覺還滿實用的啊!不知道有沒有可能在 C++ 的部分也提供類似的工具?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *