微軟發布 Visual Studio 2022 並進行多項新改進

閱讀時間圖標 12分鐘讀


讀者幫助支持 MSpoweruser。如果您透過我們的連結購買,我們可能會獲得佣金。 工具提示圖標

請閱讀我們的揭露頁面,了解如何幫助 MSPoweruser 維持編輯團隊的發展 阅读更多

微軟視覺工作室 2022 預覽版

微軟視覺工作室 2022 預覽版

微軟今天宣布 Visual Studio 2022 全面上市。此 GA 版本的 Visual Studio 2022 附帶上線許可證,用於生產使用。

Visual Studio 2022 的主要功能:

64-位

  • devenv.exe 現在只有 64 位

Azure 雲服務

  • 現在支持 Azure 雲服務(經典)和 Azure 雲服務(擴展支持)項目。

C + +中

  • v143 構建工具現在可通過 Visual Studio 安裝程序以及 獨立的構建工具.
  • 在調試器下運行時,本機 C++ 應用程序現在可以使用新的熱重載體驗。 它支持 MSBuild 和 CMake 項目。 有關更多信息,請參閱我們的 熱重載部分 。
  • 您現在可以在 WSL2 上本地構建和調試,而無需建立 SSH 連接。 支持跨平台 CMake 項目和基於 MSBuild 的 Linux 項目。
  • Visual Studio 現在支持 buildPresets.targets CMakePresets.json 中的選項。 這允許您在 CMake 項目中構建目標子集。
  • CMake 項目中的項目菜單已經過簡化,並提供了“刪除緩存和重新配置”和“查看緩存”選項。
  • CMake 概述頁面已更新以支持 CMakePresets.json。
  • 實施 /scanDependencies 用於輸出 CMake 項目的 C++20 模塊依賴項的標誌,如中所述 P1689r3. 這是支持使用 CMake 構建基於模塊的項目的一步,我們正在努力在以後的版本中完成此支持。
  • 您現在可以使用 LLDB 從 Visual Studio 調試在遠程系統上運行的進程。
  • 我們已將 Visual Studio 附帶的 CMake 版本升級到 3.21 版。 見 CMake 3.21 發行說明 有關可用內容的詳細信息。
  • Visual Studio 附帶的 LLVM 工具已升級到 LLVM 12。請參閱 LLVM 發行說明 有關詳細信息。
  • MSVC 工具集現在默認為 SHA-256 調試記錄中的源哈希. 以前,該工具集默認使用 MD5 進行源散列。
  • 使用 C++ 工作負載的遊戲開發現在安裝了支持 Visual Studio 2022 的最新虛幻引擎。
  • 在為導入的模塊和標題單元的類型提供導航和語法突出顯示時,改進了 C++ IntelliSense。
  • 通過優化緩存的標頭使用和符號數據庫訪問來改進 C++ IntelliSense 性能,提供更短的加載時間以進入您的代碼。
  • C++ 的 IntelliSense Code Linter 現在默認開啟,提供即時的鍵入建議並修復常見代碼缺陷的建議。
  • 交換機下對libfuzzer的支持 -fsanitize=fuzzer。 看 文件 閲讀更多的細節。
  • 我們在代碼分析工具中改進了空指針取消引用檢測。
  • 代碼分析現在強制使用註釋的函數的返回值 _Check_return_ or _Must_inspect_result_ 必須檢查。
  • 增加了對支持 gsl::not_null 進行代碼分析。
  • 在 C++ 移動開發工作負載中更新到 NDK r21 LTS。
  • 現在不推薦使用 C++ AMP 標頭。 包括在 C++ 項目中會產生構建錯誤。 要使錯誤靜音,請定義 _SILENCE_AMP_DEPRECATION_WARNINGS。 Please see請參閱 我們的 AMP 棄用鏈接 閲讀更多的細節。

調試和診斷

  • 附加到進程對話框改進
  • 異常助手改進
  • 強制運行以單擊
  • 內存轉儲診斷分析
  • 我們發布了一種名為 Dependent Breakpoint 的新型斷點,它允許您將斷點配置為僅在第一次命中另一個斷點時才啟用。
  • 我們為 Extrenal Sources 節點添加了更多更新,您現在可以在子節點“Modules without Sources”下看到模塊,並從解決方案資源管理器本身加載符號。
  • 斷點間距改進
  • 臨時斷點
  • 拖放斷點
  • 解決方案資源管理器中的外部源節點
  • 附加到進程對話框改進

個人化定制服務

  • 為垂直和水平選項卡添加了顏色選項卡
  • 添加了主題包並與 VS Code 主題作者合作推出 自定義主題集合
  • 內置 主題轉換器 將 VS Code 主題轉換為在 Visual Studio 2022 中工作
  • 添加了將 Visual Studio 主題與 Windows 主題同步的功能
  • 添加了新的文檔管理功能,包括自定義標籤寬度、加粗活動文檔以及 docwell 中的附加關閉按鈕。

編輯頁

  • 添加了子詞導航
  • 自動保存現在可作為預覽功能使用
  • 多插入符號複製/粘貼體驗

可擴展性

  • 從 Microsoft.VisualStudio.Language.Client 程序集中刪除 API
  • VS SDK 包含幾個重大更改,Visual Studio 2019 擴展在 2022 年將無法使用。請參閱 VSSDK 文檔 獲取更多訊息
  • VS SDK 參考程序集不再安裝到 VSSDK\VisualStudioIntegration\Common\Assemblies 文件夾。 如果您的構建依賴於這些程序集,請遷移您的項目以改用 NuGet 包。 對於離線場景:
    1. 保留一個組織內的 nuget 提要,從中恢復 nuget 包。
    2. 檢查二進製文件。
  • 添加了 ILanguageClient 重大更改修復

雲計算服務

  • 石青 將用於 Azure 存儲的本地模擬,而不是舊的且不再積極開發的 Azure 存儲模擬器。

Git 工具

  • 多倉庫支持 在預覽標誌下 適用於跨越不同存儲庫的任何解決方案(即項目託管在不同 Git 存儲庫中的解決方案)
  • 發佈到 Azure DevOps 現在完全支持創建 git 存儲庫體驗
  • 狀態欄增強功能包括 從空 VS 查看和打開存儲庫的新功能 和 顯示未拉取提交的計數
  • Git Changes 窗口上的溢出菜單現在可用於具有其他 git 操作的僅限本地存儲庫
  • 包含添加/刪除行數和可發現配置選項的統一差異工具欄
  • 提交詳細信息增強功能,包括響應速度更快且用戶友好的 UI

幫助菜單

  • 在 17.0 期間,我們使用入門材料和有用的提示/技巧對幫助菜單進行了改造。
  • 通過添加諸如訪問開發人員社區、發行說明、Visual Studio 產品路線圖和我們的社交媒體頁面等內容,與我們的開發團隊進行更多協作。

熱重載體驗

  • .NET 開發人員現在可以通過 Visual Studio 調試器使用熱重載,而無需針對許多 .NET 6 應用程序類型的調試器
  • 使用 Visual Studio 調試器時,C++ 開發人員現在可以使用熱重載

有關更多詳細信息,請參閱上面的鏈接

智能代碼

  • 整線完成 根據您當前的上下文預測您的下一段 C# 代碼,並將其顯示為光標右側的內聯建議。
  • 整線完成 現在 與最新版本的 JetBrains ReSharper 兼容. 請注意,不支持根據 ReSharpers 自定義完成列表項選擇更新行完成上下文 - 如果需要,ReSharper 用戶可以選擇使用 Visual Studio 原生 IntelliSense,如文檔所述 点击這裡

JavaScript/打字稿

  • 我們發布了一種新的 JavaScript/TypeScript 項目類型,它使用附加工具構建獨立的 JavaScript/TypeScript 項目。 您將能夠使用計算機上安裝的框架版本在 Visual Studio 中創建 Angular 和 React 項目。
  • JavaScript 和 TypeScript 測試現在可在 Visual Studio 測試資源管理器中使用
  • NPM GUI 可用,因此您現在可以像下載 Nuget 包一樣下載 NPM 模塊

.NET 6 開發工具包

  • .NET 6 SDK 包含在 Visual Studio 2022 中

.NET 生產力

  • 引入參數重構可以將新參數從方法實現移動到其調用者。
  • 跟踪數據流分析的價值源
  • 為重新分配的變量加下劃線的選項
  • 在“生成覆蓋”對話框中添加了搜索選項
  • XML tags now preserve whitespace and CDATA blocks
  • Find All References 窗口現在將對多目標項目進行分組
  • 重構以刪除 Visual Basic 中的重複類型
  • Go to Implementation 將不再導航到具有同樣被覆蓋的抽象聲明的成員。
  • 從解決方案資源管理器同步命名空間以匹配您的文件夾結構
  • 從解決方案資源管理器配置後台代碼分析
  • 現在默認為新的 .NET 項目啟用可空引用類型
  • C# 10.0 文件範圍的命名空間重構
  • 導航到反編譯的源現在默認開啟
  • 重構以更喜歡空檢查而不是類型檢查
  • XML 註釋現在將自動生成一個 <exception> 當方法顯式拋出異常時標記
  • 現在默認啟用繼承保證金

編程語言

  • C#10

Razor (ASP.NET Core) 編輯器

  • 減少 UI 凍結並提高解決方案啟動時的性能
  • 在某些解決方案中,語義著色速度提高了 2 倍
  • Razor 文件中的 F7(查看代碼)支持
  • razor 文件中的代碼段支持,它將使用單個選項卡完成代碼段會話,而不是按 tab-tab
  • 當有嵌套的 HTML 和 Razor 組件時,@code 塊中的格式更好
  • Razor 文件中的熱重載支持
  • 性能改進
  • 格式和縮進增強
  • 新的 Razor 編輯器顏色
  • TagHelpers 現在已著色並具有快速信息分類支持和完成工具提示
  • Razor 構造的角撐高亮和導航
  • 評論現在具有自動完成、智能縮進、自動包含評論延續和塊評論導航

遠程測試

  •  在遠程環境(如 linux 容器、WSL 和 SSH 連接)上啟用運行測試的早期實驗預覽。

測試工具支持

  • 在測試資源管理器中顯示
  • 從 17.0 開始的新版本測試平台將無法運行通用測試和有序測試。 這些特定功能僅作為 MSTestv1 早期版本的一部分提供,不包含在 MSTestv2 中。 我們看到這些功能的使用率非常低,並且現在認為有序測試與最佳測試實踐背道而馳。
  • 一些測試體驗在 17.0 中將不可用,包括創建新的 TestSettings 文件和 TestSettings 編輯器。 測試運行仍將能夠使用 TestSettings 文件,但 TestSettings 已替換為 RunSettings,我們鼓勵用戶遷移改進的性能和功能。 阅读更多.
  • Web 負載測試和編碼的 UI 測試支持更新。 編碼的 UI 測試 和 [Web 負載測試](基於雲的負載測試服務生命週期結束 | Azure DevOps 博客 (microsoft.com) 已於 2019 年正式棄用。為了盡量減少對用戶的影響,Visual Studio 2022 中對這些功能的支持最少。我們強烈鼓勵用戶放棄 Coded UI Test 和 Web Load Test。

UWP 擴展 SDK 的工具箱填充

  • UWP 擴展 SDK 現在需要通過在它們的 SdkManifest.xml 文件. 舊版本 Visual Studio 的行為沒有改變; 他們將忽略清單中的控件列表,而是動態枚舉 SDK 程序集中的控件類型。

受信任的地點

  • 我們改進了“信任設置”功能,現在可以在即將在 IDE 中打開不受信任的代碼(例如文件、項目或文件夾)時顯示警告。
  • 信任檢查現在在解決方案文件夾級別完成
  • 用戶創建的項目會自動添加到受信任列表中
  • 用戶可以跳過對 Visual Studio 創建的臨時位置的信任檢查

更新、LTSC 和部署

  • 使用 Visual Studio 2022,將同時支持多個服務基線,這些基線將在秋季和春季發布。 有關詳細信息,請參閱 Visual Studio 發布節奏文檔 和 Visual Studio 2022 產品生命週期.
  • Visual Studio 2022 附帶的新安裝程序現在能夠配置 Visual Studio 產品應從何處獲取更新。 這允許您從不同的 LTSC 中選擇更新,或者,如果您處於託管企業環境中,您可以配置客戶端以從佈局中獲取其更新。 配置更新源的能力是 Visual Studio 安裝程序附帶的新功能,因此該行為也適用於 Visual Studio 的低級版本,例如 Visual Studio 2019。有關配置更新通道的更多信息,請參閱這 更新 Visual Studio 文檔。 有關使這項工作適用於網絡佈局的更多信息,請參閱 Visual Studio 管理員指南.
  • IT 管理員現在可以報告問題 沒有安裝 Visual Studio。

用戶界面

  • 默認圖標已更新和刷新。

Web工具

  • 發布摘要頁面現在具有在“託管”部分右上角的“...”菜單下啟動/停止遠程調試和分析的操作
  • 連接的服務頁面現在具有啟動存儲資源管理器的操作
  • .NET 6 附帶的“ASP.NET Core Empty”模板使用了新的 “最少的 API” 我們已經開始添加支持的範例
  • 石青 將用於 Azure 存儲的本地模擬,而不是舊的且不再積極開發的 Azure 存儲模擬器。
  • 您可以使用向 ASP.NET Core 應用程序添加身份驗證 微軟身份平台 通過 Visual Studio 中的連接服務體驗。

.NET Framework 的 WPF XAML 設計器

  • 當前用於 .NET Framework 的 WPF XAML 設計器已替換為用於 .NET Framework 的新 WPF XAML 設計器,該設計器基於用於 .NET 的 WPF XAML 設計器 (.NET Core) 的相同體系結構。 Visual Studio 的體驗看起來是一樣的,但是第三方控件供應商需要支持新的可擴展性模型,因為之前的模型基於 .design.dll 和 Microsoft.Windows.Design.Extensibility 已棄用。 如果您已經創建了一個 .designtools.dll .NET (.NET Core) 的擴展,相同的擴展將適用於 .NET Framework 的新 WPF XAML 設計器。 請參考 移民文件 下面是有關如何遷移到新的可擴展性模型的更多信息。

XAML 熱重載

  • XAML 熱重載更改 – 對應用內工具欄和設置的微小更改

XAML 實時預覽

  • XAML 實時預覽現在可供 WPF、UWP、WinUI 和 Xamarin.Forms 開發人員在 Android Emulator 或作為 UWP 桌面應用程序中運行其應用程序。 Live Preview 捕獲正在運行的應用程序用戶界面並將其帶入 Visual Studio 中的停靠窗口。 這使得使用 XAML Hot Reload 更改應用程序變得更容易,同時在 Visual Studio 本身中查看這些更改,而無需在運行的應用程序和 Visual Studio 之間來回切換,同時進行實時 XAML 代碼更改。

有關更多信息,請單擊上面的鏈接。

XAML 示例數據

  • 現在,在 WPF 應用程序的工具箱中創建 DataGrid、ListBox 和 ListView 控件時,將默認添加設計時示例數據。 要禁用此行為,請取消選中工具 -> 選項 -> XAML 設計器下的“在元素創建時自動添加示例數據”。”
  • 要了解有關示例數據的更多信息,請訪問 示例數據文檔.

改進的 XAML 綁定體驗

  • 我們進行了一系列改進以使數據綁定變得快速和簡單,例如從屬性檢查器快速訪問數據綁定對話框、從快速操作設置綁定的能力、在數據綁定對話框中選擇要綁定到的屬性的能力.

有關更多信息,請單擊上面的鏈接。

資源: Microsoft微軟

有關主題的更多資訊: 微軟, Visual Studio的2022