宇宙第一 IDE 發(fā)布新版了
轉(zhuǎn)自:cnBeta
前言
Visual Studio 2022 正式版于發(fā)布。新版本帶有 go-live 許可證,可供生產(chǎn)使用。在 Visual Studio 2019 的基礎(chǔ)上,新版集成開發(fā)壞境提供了非常多的改進(jìn),包括對(duì) 64 位、.NET 6 和 C++ 20 的支持,為核心調(diào)試器提供更好的性能,并在實(shí)時(shí)共享會(huì)話中支持文本聊天。
發(fā)布活動(dòng):https://visualstudio.microsoft.com/zh-hans/launch/
下載地址:https://visualstudio.microsoft.com/zh-hans/downloads/
Visual Studio 2022 的主要功能:



64 位
devenv.exe 現(xiàn)在只有 64 位
Azure Cloud Services
現(xiàn)已支持 Azure Cloud Service (classic) 和 Azure Cloud Service (extended support) 項(xiàng)目
C++
v143 構(gòu)建工具現(xiàn)在可以通過 Visual Studio 安裝程序以及獨(dú)立的構(gòu)建工具使用。
當(dāng)在調(diào)試器下運(yùn)行時(shí),新的熱重新加載體驗(yàn)現(xiàn)在可用于本地 C++ 應(yīng)用程序。它同時(shí)支持 MSBuild 和 CMake 項(xiàng)目。更多信息請(qǐng)看"熱重載"部分。
你現(xiàn)在可以在 WSL2 上本地構(gòu)建和調(diào)試,而無需建立 SSH 連接。跨平臺(tái)的 CMake 項(xiàng)目和基于 MSBuild 的 Linux 項(xiàng)目都被支持。
Visual Studio 現(xiàn)在支持 CMakePresets.json 中的 buildPresets.target 選項(xiàng)。這允許你在你的 CMake 項(xiàng)目中構(gòu)建一個(gè)目標(biāo)子集。
精簡(jiǎn)了 CMake 項(xiàng)目中的項(xiàng)目菜單,并提供了"刪除緩存和重新配置"以及"查看緩存"的選項(xiàng)。
更新了 CMake 概述頁面以支持 CMakePresets.json。
實(shí)施了 /scanDependencies 標(biāo)志,用于輸出 CMake 項(xiàng)目的 C++20 模塊依賴關(guān)系,如 P1689r3 中所述。這是朝著支持用 CMake 構(gòu)建基于模塊的項(xiàng)目邁出的一步,我們正在努力在以后的版本中完成這一支持。
現(xiàn)在你可以用 LLDB 從 Visual Studio 調(diào)試運(yùn)行在遠(yuǎn)程系統(tǒng)上的進(jìn)程。
微軟把隨 Visual Studio 一起發(fā)布的 CMake 版本升級(jí)到了 3.21 版。有關(guān)可用內(nèi)容的詳細(xì)信息,請(qǐng)參見 CMake 3.21 發(fā)布說明。
與 Visual Studio 一起提供的 LLVM 工具已經(jīng)升級(jí)到了 LLVM 12。詳情請(qǐng)參見 LLVM 發(fā)布說明。
MSVC 工具集現(xiàn)在默認(rèn)在調(diào)試記錄中使用 SHA-256 源代碼散列。此前,該工具集默認(rèn)使用 MD5 進(jìn)行源代碼散列。
使用 C++ 進(jìn)行游戲開發(fā)的工作負(fù)載現(xiàn)在可以安裝最新的虛幻引擎,并支持 Visual Studio 2022。
在為導(dǎo)入的模塊和頭單元的類型提供導(dǎo)航和語法高亮?xí)r,對(duì) C++ 智能感應(yīng)進(jìn)行了改進(jìn)。
通過優(yōu)化緩存頭的使用和符號(hào)數(shù)據(jù)庫的訪問,改進(jìn)了 C++ 智能感應(yīng)的性能,提供了改進(jìn)的加載時(shí)間以進(jìn)入你的代碼。
適用于 C++ 的 IntelliSense Code Linter 現(xiàn)在是默認(rèn)開啟的,提供即時(shí)的 as-you-type 建議和常見代碼缺陷的修復(fù)建議。
在開關(guān)-fsanitize=fuzzer 下支持 libfuzzer。更多細(xì)節(jié)見文檔。
我們改進(jìn)了代碼分析工具中的空指針解除引用檢測(cè)。
代碼分析現(xiàn)在強(qiáng)制要求必須檢查帶有Check_return或Must_inspect_result注釋的函數(shù)的返回值。
在代碼分析中添加了對(duì) gsl::not_null 的支持。
在 C++ 移動(dòng)開發(fā)的工作量中更新到 NDK r21 LTS。
C++ AMP 頭文件現(xiàn)在已被廢棄。在 C++ 項(xiàng)目中包含
會(huì)產(chǎn)生構(gòu)建錯(cuò)誤。要消除這些錯(cuò)誤,請(qǐng)定義_SILENCE_AMP_DEPRECATION_WARNINGS。請(qǐng)參閱 AMP 棄用鏈接以了解更多細(xì)節(jié)。
調(diào)試和診斷
附加到進(jìn)程對(duì)話框的改進(jìn)
異常幫助器的改進(jìn)
強(qiáng)制運(yùn)行點(diǎn)擊
內(nèi)存轉(zhuǎn)儲(chǔ)的診斷分析
微軟發(fā)布了一種新的斷點(diǎn)類型,叫做依賴性斷點(diǎn),它允許你配置一個(gè)斷點(diǎn),使其只在另一個(gè)斷點(diǎn)被首先擊中時(shí)才被啟用。
為 Extrenal Sources 節(jié)點(diǎn)添加了更多的更新,現(xiàn)在你可以在子節(jié)點(diǎn)"無源模塊"下看到模塊,并以 Solution explorer 本身的形式加載符號(hào)。
破解點(diǎn)溝槽的改進(jìn)
臨時(shí)斷點(diǎn)
拖放斷點(diǎn)
解決方案資源管理器中的外部源節(jié)點(diǎn)
附加到流程對(duì)話框的改進(jìn)
個(gè)性化設(shè)計(jì)
為垂直和水平標(biāo)簽添加顏色標(biāo)簽
增加了主題包,并與 VS Code 主題作者合作,推出了自定義主題集合
建立了主題轉(zhuǎn)換器,將 VS Code 主題轉(zhuǎn)換到 Visual Studio 2022 中使用。
增加了將 Visual Studio 主題與 Windows 主題同步的功能
增加了新的文檔管理功能,包括自定義標(biāo)簽寬度,加粗活動(dòng)文檔,以及 docwell 中額外的關(guān)閉按鈕。
編輯器
增加了子詞導(dǎo)航功能
自動(dòng)保存現(xiàn)在可以作為一個(gè)預(yù)覽功能使用
多鍵復(fù)制/粘貼體驗(yàn)
可擴(kuò)展性
從 Microsoft.VisualStudio.Language.Client 程序集中刪除了 API
VSSDK包含幾個(gè)突破性的變化,Visual Studio 2019 的擴(kuò)展在 2022 年將無法使用。更多信息請(qǐng)參見 VSSDK 文檔。
VS SDK 參考程序集不再被安裝到 VSSDK\VisualStudioIntegration\Common\Assemblies 文件夾中。如果您的構(gòu)建依賴于這些程序集,請(qǐng)將您的項(xiàng)目遷移到使用 NuGet 包來代替。對(duì)于離線的情況。
保留一個(gè) org 內(nèi)的 nuget feed,從那里恢復(fù) nuget 包。
檢查安裝文件。
增加了 ILanguageClient 的突破性變化修復(fù)
云服務(wù)
Azurite 將被用于 Azure Storage 的本地仿真,而不是舊的、不再積極開發(fā)的 Azure Storage 仿真器。
Git 工具
對(duì)任何跨越不同存儲(chǔ)庫的解決方案(即在不同 Git 存儲(chǔ)庫中托管項(xiàng)目的解決方案)的預(yù)覽標(biāo)志下的多存儲(chǔ)庫支持
在創(chuàng)建 git 倉庫的過程中,現(xiàn)在完全支持發(fā)布到 Azure DevOps。
狀態(tài)欄的增強(qiáng),包括從空 VS 查看和打開倉庫的新功能,并顯示未拉動(dòng)提交的數(shù)量
Git Changes 窗口的溢出菜單現(xiàn)在可用于僅有本地倉庫的額外 git 操作
統(tǒng)一的 Diff 工具欄,包含添加/刪除的行數(shù)和可發(fā)現(xiàn)的配置選項(xiàng)
提交細(xì)節(jié)的改進(jìn),包括一個(gè)更靈敏和用戶友好的用戶界面
幫助菜單
在 17.0 版本中,我們重新設(shè)計(jì)了幫助菜單,包括入門材料和有用的提示/技巧。
通過添加諸如訪問開發(fā)者社區(qū)、發(fā)行說明、Visual Studio 產(chǎn)品路線圖和我們的社交媒體頁面,提供了與我們開發(fā)團(tuán)隊(duì)的更多合作。
熱重載體驗(yàn)
熱重載現(xiàn)在可以通過 Visual Studio 調(diào)試器向 .NET 開發(fā)人員提供,對(duì)于許多 .NET 6 應(yīng)用程序類型,不需要調(diào)試器。
在使用 Visual Studio 調(diào)試器時(shí),熱重載現(xiàn)在可供 C++ 開發(fā)人員使用。
IntelliCode
整行補(bǔ)全可以根據(jù)你當(dāng)前的上下文預(yù)測(cè)你的下一段 C# 代碼,并在你的光標(biāo)右邊以內(nèi)聯(lián)建議的形式呈現(xiàn)。
整行補(bǔ)全現(xiàn)在與 JetBrains ReSharper 的最新版本兼容。請(qǐng)注意,不支持基于 ReSharpers 自定義補(bǔ)全列表項(xiàng)目選擇的行補(bǔ)全上下文的更新--如果需要,ReSharper 用戶可以選擇使用 Visual Studio 本地 IntelliSense 來代替,如這里的文檔所示
JavaScript/TypeScript
微軟已經(jīng)發(fā)布了一個(gè)新的 JavaScript/TypeScript 項(xiàng)目類型,它可以用額外的工具構(gòu)建獨(dú)立的 JavaScript/TypeScript 項(xiàng)目。你將能夠在 Visual Studio 中使用你電腦上安裝的框架版本創(chuàng)建 Angular 和 React 項(xiàng)目。
JavaScript 和 TypeScript 測(cè)試現(xiàn)在可以在 Visual Studio Test Explorer 中進(jìn)行。
NPM GUI 可用,所以你現(xiàn)在可以像下載 Nuget 包一樣下載 NPM 模塊了
.NET 6 SDK
.NET 6 SDK 已包含在 Visual Studio 2022 中。
.NET 生產(chǎn)力
引入?yún)?shù)重構(gòu)可以將一個(gè)新的參數(shù)從方法實(shí)現(xiàn)轉(zhuǎn)移到其調(diào)用者。
用于數(shù)據(jù)流分析的跟蹤值源
可以選擇在被重新分配的變量下劃線
在生成覆蓋物對(duì)話框中增加了搜索選項(xiàng)
XML
標(biāo)簽的快速信息現(xiàn)在可以保留空白和 CDATA 塊查找所有引用窗口現(xiàn)在可以對(duì)多目標(biāo)項(xiàng)目進(jìn)行分組
重構(gòu)以刪除 Visual Basic 中重復(fù)的類型
轉(zhuǎn)到實(shí)現(xiàn)將不再導(dǎo)航到具有抽象聲明的成員,這些成員也被重寫了。
從 Solution Explorer 中同步命名空間以匹配您的文件夾結(jié)構(gòu)
從 Solution Explorer 中配置后臺(tái)代碼分析
對(duì)于新的 .NET 項(xiàng)目,現(xiàn)在默認(rèn)啟用了 Nullable 引用類型。
C# 10.0 文件范圍的命名空間重構(gòu)
現(xiàn)在默認(rèn)情況下,導(dǎo)航到反編譯的源碼是打開的。
重構(gòu)為優(yōu)先于類型檢查的空值檢查
當(dāng)一個(gè)方法明確拋出異常時(shí),XML 注釋現(xiàn)在會(huì)自動(dòng)生成一個(gè)
標(biāo)簽 繼承保證金現(xiàn)在是默認(rèn)啟用的。
編程語言
C#10
Razor (ASP.NET Core) 編輯器
減少了用戶界面的凍結(jié),提高了解決方案啟動(dòng)時(shí)的性能
在一些解決方案中,語義著色速度加快,達(dá)到 2 倍。
在 Razor 文件中支持 F7(查看代碼)。
Razor 文件中的片段支持,將通過一個(gè)標(biāo)簽完成片段會(huì)話,而不是按標(biāo)簽-標(biāo)簽。
當(dāng)有嵌套的 HTML 和 Razor 組件時(shí),在@code 塊中有更好的格式化。
在 Razor 文件中支持熱重新加載
性能改進(jìn)
格式化和縮進(jìn)的改進(jìn)
新的 Razor 編輯器顏色
TagHelpers 現(xiàn)在是彩色的,支持快速信息分類和完成工具提示
Razor 結(jié)構(gòu)的角括號(hào)突出顯示和導(dǎo)航
評(píng)論現(xiàn)在具有自動(dòng)完成、智能縮進(jìn)、自動(dòng)包含評(píng)論的延續(xù)和塊狀評(píng)論導(dǎo)航功能
遠(yuǎn)程測(cè)試
非常早期的實(shí)驗(yàn)性預(yù)覽,能夠在遠(yuǎn)程環(huán)境中運(yùn)行測(cè)試,如 linux 容器、WSL 和通過 SSH 連接。
測(cè)試工具支持
在測(cè)試資源管理器中顯示
從 17.0 開始的測(cè)試平臺(tái)的新版本將不能運(yùn)行通用測(cè)試和有序測(cè)試。這些特定的功能只作為 MSTestv1 早期版本的一部分,不包括在 MSTestv2 中。我們看到這些功能的使用率非常低,而且有序測(cè)試現(xiàn)在被認(rèn)為是與最佳測(cè)試實(shí)踐相違背的。
在 17.0 中,一些測(cè)試經(jīng)驗(yàn)將不可用,包括創(chuàng)建新的 TestSettings 文件和 TestSettings 編輯器。測(cè)試運(yùn)行將仍然能夠使用 TestSettings 文件,然而 TestSettings 被 RunSettings 所取代,我們鼓勵(lì)用戶遷移改善性能和功能。閱讀更多。
Web 負(fù)載測(cè)試和 Coded UI 測(cè)試支持更新。編碼 UI 測(cè)試和[Web 負(fù)載測(cè)試](基于云的負(fù)載測(cè)試服務(wù)終結(jié) Azure DevOps 博客(microsoft.com)在 2019 年正式廢棄。為了盡量減少對(duì)用戶的影響,在 Visual Studio 2022 中對(duì)這些功能的支持是最低的。我們強(qiáng)烈建議用戶取消 Coded UI Test 和 Web Load Test。
UWP 擴(kuò)展 SDK 的工具箱人口
UWP 擴(kuò)展 SDK 現(xiàn)在需要明確聲明他們希望出現(xiàn)在工具箱中的類型,在他們的 SdkManifest.xml 文件中列出它們。舊版本的 Visual Studio 的行為沒有改變;它們將忽略清單中的控件列表,而是動(dòng)態(tài)地列舉 SDK 程序集中的控件類型。
受信任的地點(diǎn)
改進(jìn)了"信任設(shè)置"功能,現(xiàn)在只要在 IDE 中打開不受信任的代碼(如文件、項(xiàng)目或文件夾),就會(huì)顯示警告。
信任檢查現(xiàn)在是在解決方案文件夾級(jí)別進(jìn)行的。
用戶創(chuàng)建的項(xiàng)目會(huì)自動(dòng)添加到信任列表中
用戶可以跳過對(duì) Visual Studio 創(chuàng)建的臨時(shí)位置的信任檢查
更新、LTSC 和部署
通過 Visual Studio 2022,將有多個(gè)同時(shí)支持的服務(wù)基線在秋季和春季發(fā)布。更多細(xì)節(jié)請(qǐng)參考 Visual Studio 發(fā)布節(jié)奏文檔和 Visual Studio 2022 產(chǎn)品生命周期。
Visual Studio 2022 附帶的新安裝程序現(xiàn)在可以配置 Visual Studio 產(chǎn)品從哪里獲得更新。這允許你從不同的 LTSC 中選擇更新,或者,如果你在一個(gè)受管理的企業(yè)環(huán)境中,你可以配置客戶端從一個(gè)布局中獲得其更新。
配置更新源的能力是 Visual Studio 安裝程序附帶的新功能,因此該行為也適用于 Visual Studio 的下級(jí)版本,如 Visual Studio 2019。有關(guān)配置更新渠道的其他信息,請(qǐng)參考 Update Visual Studio 文檔。關(guān)于使其適用于網(wǎng)絡(luò)布局的其他信息,請(qǐng)參閱《Visual Studio 管理員指南》。
IT 管理員現(xiàn)在可以在沒有安裝 Visual Studio 的情況下報(bào)告問題。
用戶界面
默認(rèn)圖標(biāo)已被更新和刷新。
網(wǎng)絡(luò)工具
發(fā)布摘要頁面現(xiàn)在有啟動(dòng)/停止遠(yuǎn)程調(diào)試和分析的操作,在"托管"部分的右上角的"..."菜單下。
連接的服務(wù)"頁面現(xiàn)在有一個(gè)動(dòng)作來啟動(dòng)存儲(chǔ)資源管理器
.NET 6 附帶的"ASP.NET Core Empty"模板正在使用新的"最小 API"范式,我們已經(jīng)開始為其添加支持。
Azurite 將被用于 Azure Storage 的本地仿真,而不是舊的、不再積極開發(fā)的 Azure Storage 仿真器。
你可以通過 Visual Studio 中的"連接服務(wù)"體驗(yàn),使用微軟身份認(rèn)證平臺(tái)為你的 ASP.NET Core 應(yīng)用程序添加認(rèn)證。
.NET 框架的 WPF XAML 設(shè)計(jì)器
當(dāng)前的 WPF XAML Designer for .NET Framework 被一個(gè)新的 WPF XAML Designer for .NET Framework 所取代,它基于用于 WPF XAML Designer for .NET(.NET Core)的相同架構(gòu)。
Visual Studio 的體驗(yàn)將看起來是一樣的,但第三方控件供應(yīng)商需要支持新的可擴(kuò)展性模型,因?yàn)橐郧盎?.design.dll 和 Microsoft.Windows.Design.Extensibility 的模型已經(jīng)被廢棄。
如果你已經(jīng)為 .NET(.NET Core)創(chuàng)建了一個(gè) .designtools.dll 擴(kuò)展,同樣的擴(kuò)展將適用于新的 WPF XAML Designer for .NET Framework。
XAML 熱重載
XAML Hot Reload 的變化--對(duì)應(yīng)用內(nèi)的工具欄和設(shè)置的微小變化
XAML 實(shí)時(shí)預(yù)覽
XAML 實(shí)時(shí)預(yù)覽現(xiàn)在可用于 WPF、UWP、WinUI 和 Xamarin.Forms 開發(fā)人員在 Android 模擬器或作為 UWP 桌面應(yīng)用程序運(yùn)行他們的應(yīng)用程序。實(shí)時(shí)預(yù)覽可以捕獲正在運(yùn)行的應(yīng)用程序的用戶界面,并將其帶入 Visual Studio 中的一個(gè)停靠窗口。
這使得使用 XAML Hot Reload 來改變應(yīng)用程序更容易,同時(shí)在 Visual Studio 內(nèi)部看到這些變化,而不需要在運(yùn)行中的應(yīng)用程序和 Visual Studio 之間來回切換,同時(shí)進(jìn)行實(shí)時(shí) XAML 代碼修改。
XAML 樣本數(shù)據(jù)
當(dāng)在 WPF 應(yīng)用程序中從工具箱中創(chuàng)建 DataGrid、ListBox 和 ListView 控件時(shí),設(shè)計(jì)時(shí)示例數(shù)據(jù)現(xiàn)在將被默認(rèn)添加。要禁用這種行為,請(qǐng)取消勾選"在元素創(chuàng)建時(shí)自動(dòng)添加樣本數(shù)據(jù)",在工具->選項(xiàng)->XAML 設(shè)計(jì)器下。
要了解更多關(guān)于樣本數(shù)據(jù)的信息,請(qǐng)?jiān)L問樣本數(shù)據(jù)文檔。
改進(jìn)的 XAML 綁定體驗(yàn)
微軟做了很多改進(jìn),使數(shù)據(jù)綁定變得快速和簡(jiǎn)單,比如從屬性檢查器快速訪問數(shù)據(jù)綁定對(duì)話框,能夠從快速操作中設(shè)置綁定,能夠在數(shù)據(jù)綁定對(duì)話框中選擇要綁定的屬性。
