微軟在今年九月的時候,有規出睽違五年的新版本 Visual Studio 2026 的第一個公開測試版本、Visual Studio 2026 Insiders(上一個版本是 2022);Heresy 本來還以為會有比較明確的 beta 版的,結果沒想到這幾天就直接推出正式版了!
官方的公告是《Visual Studio 2026 is here: faster, smarter, and a hit with early adopters》,考已看到這次的訴求是「更快速」和「更智慧」。
在「快速」的部分,微軟官方的說法是在專案讀取的速度上,讀取速度可以從 2022 的 14.7 秒大幅縮短為 8.3 秒、而讀取中圖形介面無法操作的時間也會從本來的 7.8 秒大幅縮短到 3.4 秒。置於「智慧」的部分,主要則還是 GitHub Copilot 的部分了。
安裝完後的版本是 18.0.0,比較有趣的是開始選單裡的捷徑似乎是把版本拿掉了、只剩下「Visual Studio」、一開始在找的時候有點不習慣;另外,圖示和 2022 有有點變化、感覺顏色更深、圖形更圓滑一點。
下面就來介紹一下這個新版的 Visual Studio 2026 吧~
新的圖形介面風格
執行起來後,可以看到圖形介面的風格是有很大的改變、基本上是重新實作過了?
新的設計風格應該是所謂的「Fluent UI」的形式,子視窗的邊框都更為圓弧;預設也提供了好幾種顏色主題可以套用,不過好像還是沒有簡單的客製化顏色工具?
此外,這次很有趣的是 Visual Studio 也允許使用者除了整個應用程式的主題外、獨立設定編輯器的主題。在「選項」的「環境」、「視覺效果體驗」中,有一項「編輯器外觀」,這邊的選項雖然比較少,但是是可以獨立設定的。
所以這邊可以讓整個程式是淺色系的、但是只有程式碼的顯示是深色系、或是反過來了!不過由於 Heresy 自己基本上都只會用淺色系的主題,所以基本上就沒什麼影響了。
程式碼編輯下方邊界區域控制加強
Visual Studio 的程式碼編輯器的下方其實一直以來都有顯示不少資訊、還有一些控制功能。
這次則是又在最右方加入了檔案編碼的顯示、方便使用者快速確認這個檔案現在是用什麼編碼。而點選那個編碼、則也可以選擇以其他編碼方式來開啟、或是將這個檔案儲存成其他的編碼;如果有需求的話,在操作流程上確實是比較方便的。
此外,這版 Visual Studio 在這個區域按滑鼠右鍵、也會有選單可以選擇要顯示那些資訊;如果有某些資訊是自己覺得用不到的,也可以直接關閉、來節省版面空間。
追加的預設快速鍵
似乎是為了符合 Visual Studio Code 的使用者的習慣,Visual Studio 2026 加入了兩個預設的快速鍵:
- Ctrl + W:關閉視窗
- Ctrl + P:程式碼搜尋
但是 Ctrl + W 本來在 C++ 程式碼編輯的時候、是用來選取整個文字用的,所以其實對 Heresy 來說算是相當地不習慣…
要修改的話,則是需要到「選項」的「環境」、「其他設定」裡面,點選「鍵盤」,在舊的鍵盤對應表中修改。
新的設定介面
Visual Studio 本身的選項介面也做了很大福地修改,現在點選「工具」、「選項」進去設定後,會是亞面的形式:
雖然還是有左邊的分區,但是其實右側的選項是根據左邊選取的範圍產生的,所以如果選取「所有設定」的話,右邊的列表就真的會顯示出所有設定、變得相當長…
不過這邊在玩的時候也發現目前應該還是有不少設定沒有轉移到新的介面、而是會開啟傳統的設定介面來做修改;這部分大概也得慢慢修改了。
此外,設定的內容現在也變成是以 JSON 的格式來儲存,他也直接提供了一個按鈕、允許使用者直接開啟 JSON 檔案來修改。
而這邊個人覺得很蠢的一件事,是微軟似乎沒有把以往介面的多語言翻譯結果拿來用、而是重新用機器翻譯來做?
像是右邊是在 Visual Studio 2026 中的程式碼縮排的設定,裡面有一個莫名其妙的「封鎖」的選項?這個選項原文應該是「block」、在 2022 還是很合理的「區塊」,結果到了 2026 反而…
而更別提這邊的分類也不知道為麼從 2022 的「定位點」變成「索引標籤」了…
老實說,個人真的覺得這個玩法實在有夠蠢的…
所有版本均可使用程式碼涵蓋範圍
之前介紹 Insider 版的時候也有提到,個人覺得這次 Visual Studio 2026 一個很棒的點,就是所有版本都可以使用「程式碼涵蓋範圍」(Code coverage)的功能了!
這項功能以往是要昂貴的企業版才有的,就算是有付錢的專業版也沒有。而現在不但專業版可以使用、就連免費的社群版也可以用了!
這點對於有點規模、有寫單元測試的人來說,是相當實用的一件事!
(參考《Visual Studio 與 GitLab 上的 C++ 程式碼覆蓋報告》)
延伸模組與 Visual Studio 2022 相容
以往 Visual Studio 大改版的時候、延伸模組往往不能直接在新版使用,所以如果有需要使用 Qt VS Tools 這類延伸模組(參考)的話,往往必須要等到延伸模組推出新版、才能進行專案的轉移,有的時候得等相當久。
而 Visual Studio 2026 這次則是號稱在延伸模組的部分和 Visual Studio 2022 完全相容、所以既有的延伸模組可以直接沿用、不需要等開發者轉移了!
所以理論上這次要把專案轉移到 Visual Studio 2026 應該也會是相對簡單的。
新的方案檔案格式 slnx
微軟在 Visual Studio 2022 17.10 的時候,就有提供一個預覽功能、可以使用新的、以 XML 為基礎的方案格式、.slnx 了。
而在 2026 似乎是把這個新的方案格式設定為預設的格式了~不過由於他還是支援以前的 .sln 檔案,所以使用上不會有什麼影響,差別應該是新建立的專案預設格是會改變而已。
如果想要預設使用舊的格式,也是可以在設定裡面修改。不過考慮到新的 slnx 的格式內容其實簡化相當多、也比較好維護,個人是覺得沒有特別的需求(主要應該會是其他工具的相容性方面)的話,應該是可以以新的格式為主了。
支援 markdown 文件中顯示 Mermaid
Mermaid 是一種用文字來描述圖形(通常是狀態圖這種類型)的語法(官網),由於相對簡單,所以其實算是適合寫在技術文件中、作為輔助資訊的一種格式。
而以往雖然可以直接在 Visual Studio 裡面編輯文字、但是要確認畫出來的效果其實都還是得丟到別的網站、或是用其他方法來確認,並不是很方便。
現在只要開啟 markdown 文件的預覽功能,就可以直接看到 Mermaid 畫出來的結果了!
這樣可以即時預覽的編輯,對於有使用 Mermaid 的人來說,是相當方便的~
只是…Heresy 這邊一直以來用的其實是 PlantUML(參考)啊… orz
C++ 開發
新的 Microsoft C++ (MSVC) Build Tools 版本是 v145、這邊第一個版本就是 v14.50(看來微軟沒打算解決版本編號混亂的問題)、預設的 C++ 標準已經轉移到 C++20 了,不過 C++23 還是在預覽的階段。
而由於 Visual C++ 後來都是 binary compatibility,所以第三方函式庫有很大的機會是可以在不需要重新編譯的情況下直接使用的。
另外,官方也號稱在專案升級到新版的編譯工具後、執行階段的速度也是會提升的;官方提供的數據是 Unreal Engine 的範例裡的 Render Thread 時間會從 8.38ms 縮短為 7.9ms(6%)、Game Thread 則是從 18.06ms 縮短為 17.56(3%)。
雖然沒有太突破性的變化,但是能在不修改程式的情況下有效能增進也算是相當好的一件事了~就不知道一般程式或是函式庫能不能有類似的效能增進了。
不過,這次更新後也不再支援建置出 Windows 7 / 8 / 8.1 這些舊的作業系統的應用程式了;此外,之前被標記成廢棄的 C++ AMP 也完全移除了。
至於針對 C++ 的支援性更新,由於 C++23 還是在預覽版,所以雖然還是有增加一些 C++23、C++26 的語法,但是這邊就不列了。有興趣的話,可以參考《What’s New for C++ Developers in Visual Studio 2026 version 18.0》。
在介面上相關的變化的話,一個是開始針對 C++ attributes(例如)提供語法的凸顯(Syntax highlight);例如下面的截圖:
可以看到 [[nodiscard]] 和 [[deprecated]] 現在都會被上色了。
另外,在方案總管裡面,如果選擇 .cpp 這類的原始碼檔案後按右鍵的話,現在會多出一個「預先處理」的選項;這個選項基本上就要求 MSVC 只針對檔案做前處理(preprocess)、而不要跑完整個編譯流程。
輸出的檔案應該會是「x64\Debug\main.i」這樣形式的路徑,其中組態和檔名都會根據狀況改變。
這個檔案的內容就是經過編譯器前處理的結果,內容還是純文字檔、可以直接打開來看;他會把 #include 的內容帶入、然後把巨集展開後的結果,所以如果要確認巨集在編譯的時候到底有沒有按照想像的展開、這個功能會是滿方便的。(以前要用指令來產生)
偵錯
在偵錯的部分,Visual Studio 2026 也有不少改進的點。
首先是以 C++ 專案來說,現在可以直接透過工具列來設定要執行程式的時候的參數了!下面的「-I test.jpeg」就是執行時的參數、也可以直接在這邊修改;他應該也有歷程、所以可以快速地在幾種參數切換。
相較於以前只能打開專案的屬性視窗來修改,這個設定真的方便很多。
另外,在逐行執行偵錯的時候,現在也加入了一些新的變數 inline 形式的顯示。
像是在進入一個函式的時候,他會在後面顯示傳進來的參數的值:
如果是結構的話,也是可以把滑鼠游標移過去、展開來看內容的。
而如果是逐行執行、在呼叫完函式後,他也會提示函式回傳的值,很多時候是很方便的。
如果是 .Net 的話,似乎還會針對 if 的判斷式做類似的顯示、方便在複雜的判斷式的狀況下、判斷是影響結果的原因;不過在 C++ 好像就沒這功能了。
另外,官方也有說有針對 F5 偵錯的啟動效能做改善、號稱會快 30%。
但是這個似乎也是針對 .Net、而且是 .Net 9 到 .Net 10,和 C++ 可能也沒啥大關係了。
安裝小幫手
以前在開啟不同版本的 Visual Studio 的專案,如果有缺少必要的元件的時候,不見得會有很明確地提醒,不過這次加入了「安裝小幫手」、會在開啟專案時發現有缺少的元件的時候、跳出一個特別的頁面:
以 C++ 的專案來說,他會建議要使用的 MSVC toolset 或 Windows SDK、可以簡單地切換到新的建置環境。
根據官方的說法,應該也可以在這個頁面要求 Visual Studio 去下載缺少的元件,只是 Heresy 這邊測試的專案應該是太舊了、現在根本沒提供對應的版本,所以就沒看到這個選項了。
大致上大概就是這樣了?當然啦,官方式還列了很多東西,有興趣的話可以參考官方的更新紀錄。
尤其是主打的 GitHub Copilot 這部分,其實官方也列了不少東西。像是新的「使用 Copilot 貼上」(Adaptive paste)(alt + shift + v)感覺還滿有趣的~他號稱可以再貼上的時候自動修正小錯誤、符合目前的風格和格式、由不同的程式語言翻譯;只是 Heresy 在玩的時候似乎都沒能正確玩出來。
但是基本上由於 Heresy 這邊沒有很積極地在使用 GitHub Copilot(如果可以自己架 LLM Server 就好了),所以這部份就先跳過不提了。
最後,這次在安裝的時候,發現 Visual Studio Installer 可以自己帶入前一個版本的安裝設定了?
雖然實際安裝的時候會出現有些找不到的東西,但是整體來說應該算是可以簡化不少安裝前的設定選擇。
