Visual Studio 2022正式版於今天發佈
Visual Studio 2022 正式版於今天發佈。 新版本帶有 go-live 許可證,可供生產使用。 在 Visual Studio 2019 的基礎上,新版集成開發壞境提供了非常多的改進,包括對 64 位、. NET 6 和 C++ 20 的支援,為核心調試器提供更好的性能,並在即時共用會話中支援文本聊天。
發佈活動:https://visualstudio.microsoft.com/zh-hans/launch/
下載位址:Download Visual Studio 2022
Visual Studio 2022 的主要功能:
64 位
devenv.exe 現在只有 64 位
Azure Cloud Services
現已支援 Azure Cloud Service (classic) 和 Azure Cloud Service (extended support) 專案
● v143 構建工具現在可以通過 Visual Studio 安裝程式以及獨立的構建工具使用。
● 當在除錯器下運行時,新的熱重新載入體驗現在可用於本地C++應用程式。 它同時支援MSBuild和CMake專案。 更多資訊請看「熱重載」部分。
● 你現在可以在WSL2上本地構建和調試,而無需建立SSH連接。 跨平臺的CMake專案和基於MSBuild的Linux專案都被支援。
● Visual Studio現在支援CMakePresets.json中的buildPresets.target選項。 這允許你在你的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++智慧感應進行了改進。
● 通過優化緩存頭的使用和符號資料庫的訪問,改進了C++智慧感應的性能,提供了改進的載入時間以進入你的代碼。
● 適用於C++的IntelliSense Code Linter現在是預設開啟的,提供即時的as-you-type建議和常見代碼缺陷的修復建議。
● 在開關-fsanitize=fuzzer下支援libfuzzer。 更多細節見文檔。
● 我們改進了代碼分析工具中的空指標解除引用檢測。
● 代碼分析現在強制要求必須檢查帶有_Check_return_或_Must_inspect_result_註釋的函數的返回值。
● 在代碼分析中添加了對gsl::not_null的支援。
● 在C++移動開發的工作量中更新到NDK r21 LTS。
● C++ AMP頭文件現在已被廢棄。 在C++專案中包含<amp.h>會產生構建錯誤。 要消除這些錯誤,請定義_SILENCE_AMP_DEPRECATION_WARNINGS。 請參閱AMP 棄用連結以瞭解更多細節。
調試和診斷
● 附加到行程對話框的改進
● 異常幫助器的改進
● 強制運行點擊
● 記憶體轉儲的診斷分析
● 微軟發佈了一種新的斷點類型,叫做依賴性斷點,它允許你配置一個斷點,使其只在另一個斷點被首先擊中時才被啟用。
● 為Extrenal Sources節點添加了更多的更新,現在你可以在子節點”無源模組”下看到模組,並以Solution explorer本身的形式載入符號。
● 破解點溝槽的改進
● 臨時斷點
● 拖放斷點
● 解決方案資源管理員中的外部源節點
● 附加到流程對話框的改進
個性化設計
● 為垂直和水平標籤添加顏色標籤
● 增加了主題包,並與VS Code主題作者合作,推出了自定義主題集合
● 建立了主題轉換器,將VS Code主題轉換到Visual Studio 2022中使用。
● 增加了將Visual Studio主題與Windows主題同步的功能
● 增加了新的文檔管理功能,包括自定義標籤寬度,加粗活動文檔,以及docwell中額外的關閉按鈕。
● 增加了子詞導航功能
● 自動儲存現在可以作為一個預覽功能使用
● 多鍵複製/粘貼體驗
● 從 Microsoft.VisualStudio.Language.Client 程式集中刪除了API
● VSSDK包含幾個突破性的變化,Visual Studio 2019的擴展在2022年將無法使用。 更多資訊請參見VSSDK 文件。
● VS SDK參考程式集不再被安裝到VSSDKVisualStudioIntegrationCommonAssemblies資料夾中。 如果您的構建依賴於這些程式集,請將您的專案遷移到使用NuGet包來代替。 對於離線的情況。
● 保留一個org內的nuget feed,從那裡恢復nuget包。
● 檢查安裝檔。
● 增加了 ILanguageClient 的突破性變化修復
雲服務
● Azurite將被用於Azure Storage的本地模擬,而不是舊的、不再積極開發的Azure Storage模擬器。
Git工具
● 對任何跨越不同存儲庫的解決方案(即在不同Git存儲庫中託管專案的解決方案)的預覽標誌下的多存儲庫支援
● 在建立git倉庫的過程中,現在完全支援發佈到Azure DevOps。
● 狀態列的增強,包括從空VS查看和打開倉庫的新功能,並顯示未拉動提交的數量
● Git Changes 視窗的溢出功能表現在可用於僅有本地倉庫的額外git操作
● 統一的 Diff 工具列,包含添加/刪除的行數和可發現的配置選項
● 提交細節的改進,包括一個更靈敏和使用者友好的用戶介面
幫助功能表
● 在17.0版本中,我們重新設計了幫助功能表,包括入門材料和有用的提示/技巧。
● 通過添加諸如訪問開發者社區、發行說明、Visual Studio產品路線圖和我們的社交媒體頁面,提供了與我們開發團隊的更多合作。
● 熱重載現在可以通過Visual Studio調試器向.NET開發人員提供,對於許多.NET 6應用程式類型,不需要調試器。
● 在使用Visual Studio調試器時,熱重載現在可供C++開發人員使用。
IntelliCode
●整行補全可以根據你當前的上下文預測你的下一段C#代碼,並在你的游標右邊以內聯建議的形式呈現。
● 整行補全現在與JetBrains ReSharper的最新版本相容。 請注意,不支援基於ReSharpers自訂補全清單項目選擇的行補全上下文的更新–如果需要,ReSharper使用者可以選擇使用Visual Studio本地IntelliSense來代替,如這裡的文件所示
JavaScript/TypeScript
● 微軟已經發佈了一個新的JavaScript/TypeScript專案類型,它可以用額外的工具構建獨立的JavaScript/TypeScript專案。 你將能夠在Visual Studio中使用你電腦上安裝的框架版本創建Angular和React專案。
● JavaScript和TypeScript測試現在可以在Visual Studio Test Explorer中進行。
NPM GUI可用,所以你現在可以像下載Nuget包一樣下載NPM模組了
.NET 6 SDK
● .NET 6 SDK已包含在Visual Studio 2022中。
● 引入參數重構可以將一個新的參數從方法實現轉移到其調用者。
● 用於數據流分析的跟蹤值源
● 可以選擇在被重新分配的變數下劃線
● 在生成覆蓋物對話框中增加了搜索選項
● XML <code>標籤的快速信息現在可以保留空白和CDATA塊
● 查找所有引用視窗現在可以對多目標項目進行分組
● 重構以刪除Visual Basic中重複的類型
● 轉到實現將不再導航到具有抽象聲明的成員,這些成員也被重寫了。
● 從Solution Explorer中同步命名空間以匹配您的資料夾結構
● 從Solution Explorer中配置後台代碼分析
● 對於新的. NET專案,現在預設啟用了Nullable引用類型。
● C# 10.0檔範圍的命名空間重構
● 現在默認情況下,導航到反編譯的源碼是打開的。
● 重構為優先於類型檢查的空值檢查
● 當一個方法明確拋出異常時,XML註釋現在會自動生成一個<exception>標籤
● 繼承保證金現在是預設啟用的。
● C#10
● 減少了使用者介面的凍結,提高了解決方案啟動時的性能
● 在一些解決方案中,語義著色速度加快,達到2倍。
● 在Razor檔中支援F7(查看代碼)。
● Razor檔中的片段支援,將通過一個標籤完成片段會話,而不是按標籤-標籤。
● 當有嵌套的HTML和Razor元件時,在@code塊中有更好的格式化。
● 在Razor檔中支援熱重新載入
● 性能改進
● 格式化和縮進的改進
● 新的Razor編輯器顏色
● TagHelpers現在是彩色的,支援快速資訊分類和完成工具提示
● Razor結構的角括弧突出顯示和導航
● 評論現在具有自動完成、智慧縮進、自動包含評論的延續和塊狀評論導航功能
● 非常早期的實驗性預覽,能夠在遠端環境中運行測試,如linux容器、WSL和通過SSH連接。
● 在測試資源管理員中顯示
● 從17.0開始的測試平臺的新版本將不能運行通用測試和有序測試。 這些特定的功能只作為MSTestv1早期版本的一部分,不包括在MSTestv2中。 我們看到這些功能的使用率非常低,而且有序測試現在被認為是與最佳測試實踐相違背的。
● 在17.0中,一些測試經驗將不可用,包括創建新的TestSettings檔和TestSettings編輯器。 測試運行將仍然能夠使用TestSettings檔,然而TestSettings被RunSettings所取代,我們鼓勵使用者遷移改善性能和功能。 閱讀更多。
● Web負載測試和Coded 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。 有關配置更新管道的其他資訊,請參考Update Visual Studio文檔。 關於使其適用於網路佈局的其他資訊,請參閱《Visual Studio管理員指南》。
● IT管理員現在可以在沒有安裝Visual Studio的情況下報告問題。
用戶介面
● 預設圖示已被更新和刷新。
網路工具
● 發佈摘要頁面現在有啟動/停止遠端調試和分析的操作,在”託管”部分的右上角的”…”功能表下。
● 連接的服務「頁面現在有一個動作來啟動存儲資源管理器
● .NET 6附帶的”ASP.NET Core Empty”範本正在使用新的”最小API“範式,我們已經開始為其添加支援。
● Azurite將被用於Azure Storage的本地模擬,而不是舊的、不再積極開發的Azure Storage模擬器。
● 你可以通過Visual Studio中的「連接服務」體驗,使用微軟身份認證平臺為你的 ASP.NET Core 應用程式添加認證。
. NET框架的WPF XAML設計器
● 當前的WPF XAML Designer for .NET Framework被一個新的WPF XAML Designer for .NET Framework所取代,它基於用於WPF XAML Designer for . NET(.NET Core)的相同架構。
Visual Studio的體驗將看起來是一樣的,但第三方控件供應商需要支援新的可擴充性模型,因為以前基於.design.dll和Microsoft.Windows.Design.Extensibility的模型已經被廢棄。
如果你已經為. NET(.NET Core)創建了一個.designtools.dll擴展,同樣的擴展將適用於新的WPF XAML Designer for .NET Framework。 關於如何遷移到新的可擴充性模型的進一步資訊,請參考下面的遷移文件。
● XAML Hot Reload的變化–對應用內的工具列和設置的微小變化
● XAML即時預覽現在可用於WPF、UWP、WinUI和Xamarin.Forms開發人員在Android模擬器或作為UWP桌面應用程式運行他們的應用程式。 即時預覽可以捕獲正在運行的應用程式的用戶介面,並將其帶入Visual Studio中的一個停靠視窗。
這使得使用XAML Hot Reload來改變應用程式更容易,同時在Visual Studio內部看到這些變化,而不需要在運行中的應用程式和Visual Studio之間來回切換,同時進行即時XAML代碼修改。
欲瞭解更多資訊,請點擊上面的連結。
XAML樣本數據
● 當在WPF應用程式中從工具箱中創建DataGrid、ListBox和ListView控件時,設計時示例數據現在將被預設添加。 要禁用這種行為,請取消勾選”在元素創建時自動添加樣本數據”,在工具->選項->XAML設計器下。
要瞭解更多關於樣本資料的資訊,請存取樣本資料文件。
● 微軟做了很多改進,使數據綁定變得快速和簡單,比如從屬性檢查器快速訪問數據綁定對話框,能夠從快速操作中設置綁定,能夠在數據綁定對話框中選擇要綁定的屬性。
欲瞭解更多資訊,請點擊上面的連結。