2022LogoVisual Studio 2022 17.4 版版本資訊


提示

觀看 Visual Studio 2022 啟動活動的錄製 內容,以瞭解新功能、聆聽秘訣 & ,以及下載免費的數位群集。

開發人員社群 | Visual Studio 2022 藍圖 | 系統需求 | 相容性 | 可散發程式碼 | 發行歷程記錄 | 授權條款 | 部落格 | 最新版Visual Studio Docs 的新功能 |


按一下按鈕以下載最新版本的 Visual Studio 2022。 如需安裝和更新 Visual Studio 2022 的指示,請參閱 將 Visual Studio 2022 更新為最新版本。 此外,請參閱如何離線安裝上的指示。

下載社群按鈕下載專業按鈕下載企業按鈕

請流覽 Visual Studio 網站以下載其他 Visual Studio 2022 產品。


支援時間範圍

Visual Studio 2022 17.4 版將在發行後成為下一個長期維護通道。 支援設定 為接收 17.4 LTSC 通道更新 的企業和專業使用者,並會在 2024 年 7 月收到安全性弱點的修正。 如需 Visual Studio 支援基準的詳細資訊,請檢閱 Visual Studio 2022 的支援原則

Visual Studio 2022 部落格

Visual Studio 2022 部落格 是 Visual Studio 工程小組的官方產品深入解析來源。 您可以在下列文章中找到 Visual Studio 2022 版本的深入資訊:

我們已在此版本中解決許多最常回報的錯誤,並根據您在 開發人員社群 的建議新增新功能。 感謝您的繼續意見反應。 以下是我們在此預覽版中寄送的建議清單。


Visual Studio 2022 17.4 版版本


17.4.4 Visual Studio 2022 17.4.4 版

發行于 2023 年 1 月 10 日

此版本 17.4.4 中已解決的問題

  • C# 原始程式檔的檔大綱功能已停用
  • 解決在 Visual Studio 更新程式期間,Cascadia Code 和 Cascadia Mono 字型卸載的問題。

開發人員社群的問題

安全性諮詢

  • CVE-2023-21538 .NET 拒絕服務弱點.NET 6.0 中存在拒絕服務弱點,其中惡意用戶端可能會導致堆疊溢位,當攻擊者將不正確要求傳送至公開的端點時,可能會導致拒絕服務攻擊。

17.4.3 Visual Studio 2022 17.4.3 版

發行于 2022 年 12 月 13 日

此版本 17.4.3 中已解決的問題

  • 修正配置器中的 Bug,當在相同的編譯器調用中分析多個 C++ 轉譯單位時,導致記憶體流失。
  • 修正了thread_local變數導致連結器發出「嚴重錯誤 LNK1161:不正確匯出規格」錯誤的錯誤。
  • 修正配置器中的 Bug,當在相同的編譯器調用中分析多個 C++ 轉譯單位時,導致記憶體流失。
  • 修正了在編輯 C#/VisualBasic 程式碼時,導致出現訊息「診斷分析器執行器損毀」的金條的基礎例外狀況
  • 已改善在附加錄製時提交意見反應票證開發人員社群的效能。
  • 新增對 Xamarin.iOS 和 Xamarin.Mac 的 Xcode 14.1 支援。
  • 新增適用于 iOS、tvOS、macOS、macOS、Mac Catalyst 之 .NET 的 Xcode 14.1 支援。
  • 更新 .NET MAUI 至 7.0.52 (SR1.1) ,請參閱 https://aka.ms/dotnet-maui-releases 版本資訊。
  • 修正失敗時,會將 UWP 應用程式部署到尚未配對至 Visual Studio 執行所在電腦的裝置。
  • VS arm64 的 wasm-tools 體驗將會在 VS 17.4.3 中啟用。 適用于 .NET WebAssembly 建置工具和.NET 6.0 WebAssembly 建置工具。 這可讓 blazor wasm 使用 AOT 編譯進行發佈

開發人員社群的問題

安全性諮詢

  • CVE-2022-41089遠端程式碼執行.NET Core 3.1、.NET 6.0 和 .NET 7.0 中有遠端程式碼執行弱點,其中惡意執行者可能會導致使用者執行任意程式碼,因為剖析惡意製作 xps 檔案。

17.4.2 Visual Studio 2022 17.4.2 版

發行于 2022 年 11 月 29 日

17.4.2 版中已解決的問題

開發人員社群的問題


17.4.1 Visual Studio 2022 17.4.1 版

發行于 2022 年 11 月 15 日

此版本 17.4.1 中已解決的問題

  • 在 vs 安裝程式中搜尋 arm64ec 或 ec 現在會顯示包含 arm64ec 支援的相關 arm64 元件。
  • 在 Visual Studio 2022 17.3 版和更新版本中,使用 GPU 定型影像分類模型時,ML.NET Model Builder會停止回應。 已解決此死結,而且可以使用 CPU 或 GPU 成功定型影像分類。
  • 現在,搭配整合式終端機使用螢幕助讀程式可正確提供已執行命令及其輸出的相關資訊。
  • 開啟 .NET 7 Linux 核心傾印時,Visual Studio 不會當機。

開發人員社群的問題


此 Visual Studio 2022 17.4 版的新功能摘要

Arm64
此預覽版會繼續在 Windows 11 上建置原生 Arm64 支援。 除了支援 .NET 桌面開發 (WinForms 和 WPF) 之外,使用 C++ (進行 MSBuild 型專案的桌面開發) 和 ASP.NET 和 Web 開發,我們現在已啟用通用 Windows 平臺開發工作負載。 如需深入了解,請閱讀我們的部落格文章

C++

  • 改善編譯器錯誤訊息,以提供更正確且有用的資訊,特別是針對概念。
  • 已新增實驗性 MSVC 旗標 /experimental:log<directory> ,以將 SARIF 組建記錄輸出至指定的目錄。
  • 已將 C23 屬性的支援新增至 IntelliSense,並在 C++20 模組支援中持續進行。
  • 改善開啟新解決方案時的編制索引效能。 大型專案可看到 17.3 的 20-35% 改善。
  • 已改善具名傳回值 (NRVO) ::
    • 針對涉及例外狀況處理或迴圈的案例啟用 NRVO。
    • 即使使用者通過 /Zc:nrvo 旗標或更新版本或 更新版本或 /std:c++20/permissive- 還是 啟用 NRVO /Od
    • 允許使用者使用 /Zc:nrvo- 旗標停用 NRVO。
  • 已將 Visual Studio 隨附的 LLVM 版本升級為 15.0.1。 如需可用專案,請參閱 LLVMClang 版本資訊。
  • 已使用 CMake 專案新增 Visual Studio for vcpkg 成品的支援。 對於包含 vcpkg 資訊清單的專案,環境會在專案開啟時自動啟動。 您可以在 Visual Studio 的 vcpkg 環境啟用部落格文章中深入瞭解此功能。
  • 您現在可以針對 C++ 專案使用開發容器。 您可以在適用于 C++ 的開發人員容器部落格文章中深入瞭解這項功能。
  • 當 IntelliSense 是 PCH 時,讓 IntelliSense 遵守排除標頭的順序。 之前,透過 使用 /Yu PCH 並強制包含透過 /FI 時,IntelliSense 一律會先處理它,再先處理透過 /FI 包含的任何其他標頭。 這與建置行為不符,因此會依照指定的連續處理此變更 /FI 標頭。
  • 已從 [測試總管] 中的 CTest 名稱中移除內部前置詞。
  • 已將 Visual Studio 隨附的 CMake 版本更新為 3.24.1 版。 如需可用專案,請參閱 CMake 版本資訊
  • Android SDK 更新
    • 已移除 Ant 腳本,因此使用者將不再在 [新增專案] 對話方塊中看到以 Ant 為基礎的範本。 如需從 Ant 範本移轉至 Gradle 範本的說明,請參閱:從 Apache Ant 移轉組建 (gradle.org)
    • 已新增使用 NDK 23 和 24 建置的支援
    • 已將 NDK 元件更新為 LTS 第 23 版
  • 已新增 、 ranges::max_element() 和 的向量化實作 ranges::min_element()ranges::minmax_element()
  • 我們會繼續追蹤 C++ 標準化的最新發展,您可以在編譯器選項中包含 /std:c++latest,以支援下列 C++ 23 功能
    • P2302ranges::containsranges::contains_subrange
    • P2499string_view範圍建構函式應該是explicit
    • P0849r8auto(x)decay-copy 語言
    • 尚未實作編譯器元件;最初實作 Ranges 時,程式庫元件是以 C++20 模式實作。
    • P0881R7<stacktrace>
    • P2301R1pmr為 新增別名std::stacktrace
    • P1328R1constexpr type_info::operator==()
    • P2440R1ranges::iotaranges::shift_leftranges::shift_right
    • P2441R2views::join_with
  • 已新增 [建立宣告/定義之後流覽] 選項,讓您選擇 [建立宣告/定義] 功能的流覽行為。 您可以選取預覽 (預設) 或開啟檔,或沒有流覽。
  • Visual Studio 的 Arm64 組建現在組合了 CMake 和 Ninja 的 Arm64 版本。
  • 已新增 CMake 預設第 4 版的支援。 如需可用專案的詳細資料,請參閱 CMake 版本資訊
  • 使用連線管理員連線到遠端系統現在支援 SSH ProxyJump,例如,用來透過另一個 SSH 主機存取 SSH 主機 (,以存取防火牆後方的主機) 。

開發人員社群重點

偵 & 錯診斷

  • DataTable 視覺化檢視現在已使用新改進升級,包括篩選、排序、匯出與主題設定等新功能。
  • 若要以 CSV/Excel 格式匯出資料,請使用右上角的下拉式清單。
  • 視覺化檢視也可讓您根據所需的篩選字串來篩選資料。 它會傳回包含符合篩選字串之值的所有資料列。 您也可以使用 CSV/Excel 格式匯出篩選和排序的結果。
  • 視覺化檢視視窗會根據您選取的 Visual Studio 主題來設定主題。

編輯器功能

  • Visual Studio 現在提供音訊提示。 若要啟用音訊提示,請移至 [工具 > 選項],然後前往 [文字編輯器 > 一般]。 在 [設定] 區段中,核取 [啟用音訊提示] 選項以啟用音訊提示。核取此選項後,當編輯器中的插入號到達出現錯誤、中斷點或警告的行時,Visual Studio 將會播放音訊提示。 當該行到達在差異檢視中檢視檔案時已新增或移除的行時,它也會播放提示。 這些提示可以在 Windows 的 [設定] 主控台中個別啟用或修改。
  • 按住 Shift 鍵,同時將滑鼠滾輪旋轉到編輯器上方,現在會導致編輯器水準捲動。 編輯器捲動的數量可以在 [文字編輯器進階] > 下的 [工具 > 選項] 中設定。
  • 編輯器中的目前行號會反白顯示,以提升可見度。
  • [輸出] 窗格現在有一個按鈕,會在每一行前面加上時間戳記,讓開發人員更容易查看在較長執行進程中的步驟之間轉換的時間量。
  • 我們已修正在某些情況下,無法正確儲存印表機設定的問題。
  • 在編輯器中選取文字時,Visual Studio 現在會自動反白顯示相符字串。 若要啟用此功能,請移至 [工具 > 選項],然後前往 [文字編輯器 > 一般]。 在 [顯示] 區段中,核取 [顯示選取專案相符專案] 選項。 核取此選項後,每當選取 100 個字元或更少單行文字時,任何相符專案都會立即反白顯示。

F#

本機函式引數的工具提示

Git 工具

開發人員社群重點

其他功能

  • 多存放庫支援表示您一次最多可以有 10 個作用中的 Git 存放庫,讓您能夠使用橫跨多個存放庫的解決方案,並執行 Git 作業,例如同時認可、提取和推送到數個存放庫。 透過在數個存放庫上開啟具有專案的解決方案或資料夾,開始使用多重存放庫支援。 閱讀我們的 部落格文章 ,以深入瞭解並分享您的 意見反應
  • 取消追蹤並忽略追蹤的 Git 檔案
  • 根據 最近的 Git 安全性更新,我們已藉由改善存放庫狀態和使用新的信任對話方塊,來增強信任單一和多個 Git 存放庫的使用者體驗。

安裝和更新

復原

Visual Studio 現在支援回到您先前安裝的版本。 如需詳細資訊,請造訪 Rollback 部落格文章

移除支援外元件

Visual Studio 2022 17.4 版安裝套裝程式含一項新功能,可讓您輕鬆地大量移除 Visual Studio 安裝的所有元件,這些元件已轉換為支援不足狀態。 這可協助您維護安全且符合規範的環境。 開發人員可以在更新或修改上起始此動作,而 IT 系統管理員可以依原則強制執行。 對於使用版面配置的企業,可以設定配置一次,然後未來的系統管理員更新將會遵守此設定。 如果這些用戶端電腦已更新為使用最新的 Visual Studio 安裝程式,這項功能也適用于 Visual Studio 2017 和 2019。 如需此功能運作方式的其他詳細資料,請參閱 Visual Studio 系統管理員指南 ,或參閱 部落格文章

透過系統管理員範本設定原則 (ADMX)

今天,我們發行 了 Visual Studio 系統管理範本檔案 (ADMX/ADML) ,讓 IT 系統管理員可以輕鬆地探索、管理及控制可供原則控管的 Visual Studio 行為。 ADMX 檔案也很容易與常見的管理和部署工具整合,例如群組原則編輯器或 Microsoft 端點管理員。 請 在這裡找到其他資訊

Visual Studio 安全性更新現在可透過商務用Windows Update的 Microsoft Update 通道取得

所有支援的 Visual Studio 版本的所有 Visual Studio 安全性更新現在都可供新式雲端連線的 Azure Active Directory (Azure AD) 使用商務用Windows Update的裝置,並由行動裝置管理解決方案管理,例如Microsoft Endpoint Manager (先前稱為 Intune) 。 您可以將 AdministratorUpdatesEnabled 原則設定為 2,在用戶端裝置上啟用此功能。 如需詳細資訊,請參閱 部落格文章Visual Studio 系統管理員指南

IntelliCode

當 IntelliCode 有建議提供修改或刪除單行程式碼的一部分時,建議現在會顯示為 C# 使用者的編輯器介面上的「差異檢視」。 藉由使用 TAB 鍵,使用者可以接受預測。

Microsoft Teams 開發工具 (Teams 工具組)

  • 使用此新版 Teams 工具組時,Azure Active Directory 範本檔案、projectSettings.json 和應用程式資訊清單檔都需要更新。 這些更新會在執行 Teams 工具組功能表命令之後自動完成,且不會變更您的專案原始程式碼。 輸出視窗會顯示更新的狀態。
  • Microsoft Teams 應用程式專案範本精靈中的 Tab 應用程式類型包含設定單一登入的選項。 稍後使用 Project > Teams 工具組 > 新增驗證程式代碼加以新增。 在檔中深入瞭解 Teams 工具組: https://aka.ms/teams-toolkit-vs-docs

.NET 生產力

  • 有新的內嵌重新命名 UI 可讓您重新命名類型。 按Ctrl+RR以顯示新的內嵌重新命名體驗。 請注意,新的 UI 現在會顯示在類型底下,並提供重新命名註解、字串與符號檔的選項。

內嵌重新命名

  • 現在有一個選項可以停用 Source Link 和 Embedded 來源。 您可以在 [工具 > 選項 > 文字編輯器 > C# > 進階] 中停用此功能,然後取消選取 [啟用流覽至Source Link和內嵌來源]。

停用Source Link和內嵌來源

DataTable 視覺化檢視

  • 您現在可以在 [檔大綱] 視窗中輕鬆檢視檔案的結構。 [檔大綱] 視窗會在編輯器中顯示檔案的符號樹狀結構,協助您快速流覽和編輯專案檔。 您可以移至 [檢視>其他 Windows> 檔大綱] 或使用快速鍵 Ctrl+Alt+T來開啟 [檔大綱]。

檔大綱

測試控管

  • Live Unit Testing 現在提供一個按鈕來重設所有狀態。 移至測試 > 解決方案的 Live Unit Testing > 重設 Live Unit Testing 狀態。 即時單元測試重設狀態
  • Live Unit Testing 現在支援 Razor 檔案。
  • 在失敗前執行測試可協助您找到不穩定的測試,並會執行單元測試,直到它們達到失敗或達到 [選項] 中設定的閾值為止。
  • 檢視以新的程式碼涵蓋範圍變更集報表限定為您變更的檔案/行。

效能改善

在此版本中,我們已改善下列 Visual Studio 區域的效能:

  • 在檔案中尋找 & Replace
  • Git 分支切換
  • 單元測試效能
  • 語言服務組態交換器優化
  • 回應式檔案儲存
  • C++ 索引編制

深入瞭解此版本中的所有效能增強功能


Dev Box 上的 Visual Studio

  • 由於 Dev Box 不在您的區域網路上,您必須使用公用 IP,透過網際網路連線到區域網路上的任何 Mac。
  • 如果 Android 模擬器不會載入,請移至 [Windows 功能] 對話方塊,確定已啟用 Hyper-V。 如果未選取 [Hyper-V] 核取方塊,請加以啟用,然後在嘗試使用模擬器之前重新開機開發方塊。

開發人員社群的問題


已知問題

.NETSDK: .NET SDK 升級至 17.4 [7.0] 專案之後,不會載入、建置或執行使用特定工作負載的專案:如果已安裝預覽 .NET 7 SDK 工作負載,則不會載入、建置和執行 .NET 7 Preview SDK 工作負載:如果已安裝預覽 .NET 7 SDK,則具有工作負載相依性的專案,例如 microsoft.net.workload.mono.toolchain 可能無法建置、載入或執行。 此處 說明此問題的範例。

解決方法:解決問題的最佳方法是卸載任何 .NET 7 預覽 SDK。 如需詳細指示,請參閱 dotnet uninstall 指示。 例如,在 Windows 上,可以使用新增/移除程式卸載 dotnet Preview SDK。 另一個選項是嘗試刪除 C:\Program Files\dotnet\sdk-manifests\microsoft.net.workload.mono.toolchain 資料夾,但這只適用于檔案型安裝。 Dotnet-core-uninstall 是卸載 .NET 7 預覽 SDK 的另一個選項。

Python 和原生混合模式偵錯: 使用虛擬環境時,Python 和原生混合模式偵錯有已知的 Bug。 由於 Windows 版 Python 會針對 venvs 使用存根python.exe,Visual Studio 會尋找並載入python.exe做為子進程。 針對 Python 3.8 及更新版本 - 啟動偵錯會話時,因為混合模式不支援多重進程偵錯,所以只會偵錯該存根進程,而不是實際的應用程式。 針對附加案例,因應措施是附加至正確的python.exe。 針對 launch/F5,沒有因應措施,很抱歉,您必須避免 venvs。 針對 3.8 之前的 Python 版本,混合模式偵錯應該如預期般使用 venvs。 在全域環境中執行不會對任何版本的 Python 造成這些問題。 如需詳細資訊 ,請參閱無法偵錯 Python 和 Native

探索/執行 Nunit 測試: 在 17.4 上,從 [測試總管] 探索/執行 Nunit 測試失敗,輸出窗格中有「未知的架構 7.0 版」例外狀況

解決方案:如果您有 Nunit3TestAdapter 的參考,請確定 更新為 4.3.1 或更高版本。

NuGet 套件Visual Studio 17.4 不會在發佈類別庫專案時產生 NuGet 套件。

解析度 這是 17.4 中的刻意變更,讓 Visual Studio 中的發佈行為在所有 .NET 專案類型之間保持一致。 若要為類別庫專案產生 NuGet 套件,建議的方法是:

  1. 設定專案屬性以在組建上產生 NuGet 套件,如這裡所述: https://learn.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package-using-visual-studio?tabs=netcore-cli#configure-package-properties
  2. 如這裡所述,在按一下滑鼠右鍵時執行套件命令 - > 套件: https://learn.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package-using-visual-studio?tabs=netcore-cli#run-the-pack-command 透過這項新變更,publish 命令會產生類別庫的發佈輸出,類似于所有其他 .NET 專案類型的行為。 如需詳細資訊,請參閱這份檔頁面: https://learn.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package-using-visual-studio?tabs=netcore-cli 。 您也可以使用各種套件 msbuild 屬性來變更套件行為,如這裡所述: https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#pack-target

遵循下列連結,查看 Visual Studio 2022 中所有已開啟的問題和可用的因應措施。


目前提供 .NET 7

.NET 7 讓您的應用程式提升 C# 11/F# 7、.NET MAUI、ASP.NET Core/Blazor、Web API、WinForms、WPF 等等的效能和新功能。 使用 .NET 7,您也可以輕鬆地將 .NET 7 專案容器化、在 GitHub 動作中設定 CI/CD 工作流程,以及達成雲端原生可檢視性。


意見反應與建議

我們很希望聽聽您的意見! 您可以使用安裝程式或 Visual Studio IDE 右上角的 [傳送意見反應] 圖示,或從 [說明 > 傳送意見反應] 來回報問題或建議功能意見反應圖示。 您可以使用Visual Studio 開發人員社群來追蹤您的問題,您可以在其中新增批註或尋找解決方案。 您也可以透過我們的即時聊天支援取得免費的安裝協助。


部落格

善用「開發人員工具部落格」網站中的見解與建議,讓您能夠隨時取得所有新版本的最新資訊,以及涵蓋各類功能的深入探討文章。


頁首