Visual Studio IconVisual Studio 2019 版本 16.9 版本資訊



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


注意

這不是 Visual Studio 的最新版本。 若要下載最新版本,請參閱 Visual Studio 的網站。



Visual Studio 2019 16.9 版的新功能

支援時間範圍

Visual Studio 2019 16.9 版會是 Visual Studio 2019 第四個受支援的維護基準。 我們鼓勵需要採用長期穩定且安全開發環境的 Enterprise 和 Professional 客戶在此版本上進行標準化。  如我們在生命週期與支援原則 \(部分機器翻譯\) 中所詳述,16.9 版在 2022 年 10 月之前能繼續享有支援,可接收修正程式與安全性更新。 2022 年 10 月是 Visual Studio 2019 16.11 版發行後滿一年,其已獲宣告為最終的維護基準。

此外,因已推出 16.9 版,所以 16.7 版 (即上一版本的維護基準) 將再支援 12 個月,並於 2022 年 4 月停止支援。 另請注意,16.8 版也不再受支援。 這些中繼版本只會在下一次的次要更新發行之前收到服務修正。

您可以在 my.visualstudio.com 下載區段中取得最安全的 Visual Studio 2019 16.9 版。 請參閱最新版的版本資訊,或造訪 Visual Studio 網站以下載最新支援的 Visual Studio 2019 版本。 如需 Visual Studio 所支援基準的詳細資訊,請參閱 Visual Studio 2019 的支援原則

Visual Studio 2019 16.9 版

Visual Studio 2019 封存版本資訊

Visual Studio 2019 部落格

Visual Studio 2019 部落格是由 Visual Studio 工程小組發行的官方產品見解。 您可以在下列文章中找到有關 Visual Studio 2019 版的深入資訊:


Release Notes Icon Visual Studio 2019 16.9.26 版 New release icon

2022 年 10 月 11 日發行

此版本中已解決的問題:

  • 系統管理員可以從配置更新離線用戶端電腦上的 VS 安裝程式,而不需更新 VS。

資訊安全諮詢注意事項

  • CVE-2022-41032 .NET 權限弱點提高 .NET 7.0.0-rc.1、.NET 6.0、.NET Core 3.1 和 NuGet 用戶端 (NuGet.exe、NuGet.Commands、NuGet.CommandLine、NuGet.Protocol) 中存在惡意執行者可能會導致使用者執行任意程式碼。

Release Notes Icon Visual Studio 2019 16.9.25 版

資訊安全諮詢注意事項

  • CVE-2022-38013 .NET 拒絕服務弱點 ASP.NET Core 3.1 和 .NET 6.0 中存在拒絕服務弱點,惡意用戶端可能會造成堆疊溢位,當攻擊者傳送模型繫結期間剖析的自訂承載時,可能會導致拒絕服務的攻擊。

Release Notes Icon Visual Studio 2019 16.9.24 版

2022 年 8 月 9 日發行

此版本中已解決的問題:

  • 將 Git for Windows 更新為 v2.37.1.1 定址 CVE-2022-31012。

資訊安全諮詢注意事項


Release Notes Icon Visual Studio 2019 16.9.23 版

2022 年 6 月 14 日發行

此版本中已解決的問題:

  • 已更新 LibraryManager 以採用對 cdnjs API 的變更

資訊安全諮詢注意事項


Release Notes Icon Visual Studio 2019 16.9.21 版

2022 年 5 月 10 日發行

此版本中已解決的問題:

  • 已將 Visual Studio 使用的 Git for Windows 版本和可安裝的選用元件更新為 2.36.0.1
  • 已修正 Git 整合的問題,其中若提取/同步處理已分歧的分支,輸出視窗將不會顯示關於解決方式的當地語系化提示。

資訊安全諮詢注意事項

CVE-2022-29117 .NET 拒絕服務弱點 .NET 6.0、.NET 5.0 和 .NET Core 3.1 中存在弱點,惡意用戶端可以操作 Cookie 並造成拒絕服務。

CVE-2022-23267 .NET Core 拒絕服務弱點 .NET 6.0、.NET 5.0 和 .NET Core 3.1 中存在弱點,惡意用戶端可能會透過 HttpClient 過度的記憶體配置造成拒絕服務。

CVE-2022-29145 .NET 拒絕服務弱點 .NET 6.0、.NET 5.0 和 .NET Core 3.1 中存在弱點,其中惡意用戶端在剖析 HTML 表單時可能會導致拒絕服務。

CVE-2022-24513 權限弱點提高當 Microsoft Visual Studio 更新程式服務不正確地剖析本機設定資料時,可能會有權限弱點提高。


Release Notes Icon Visual Studio 2019 16.9.20 版

2022 年 4 月 19 日發行

此版本中已解決的問題:

  • 已修正 16.9.19 中的 vctip.exe 迴歸問題

Release Notes Icon Visual Studio 2019 16.9.19 版

2022 年 4 月 12 日發行

此版本中已解決的問題:

資訊安全諮詢注意事項

CVE-2022-24765 權限提高弱點 Git for Windows 中可能會有權限提高弱點,其中 Git 作業在搜尋 Git 目錄時,可能會在存放庫外執行。 Git for Windows 現在已更新為 2.35.2.1 版。

CVE-2022-24767 DLL 劫持弱點在 SYSTEM 使用者帳戶下執行解除安裝程式時,Git for Windows 安裝程式中會有潛在的 DLL 劫持弱點。 Git for Windows 現在已更新為 2.35.2.1 版。

CVE-2022-24513 權限弱點提高當 Microsoft Visual Studio 更新程式服務不正確地剖析本機設定資料時,可能會有權限弱點提高。


Release Notes Icon Visual Studio 2019 16.9.18 版

2022 年 3 月 8 日發行

此版本中已解決的問題:

資訊安全諮詢注意事項

CVE-2020-8927 弱點 .NET 5.0 和 .NET Core 3.1 中會有遠端程式碼執行弱點,其中 Brotli 程式庫 1.0.8 版之前會有緩衝區溢位。

CVE-2022-24464 弱點 剖析特定 HTTP 表單要求類型時,.NET 6.0、.NET 5.0 和 .NET CORE 3.1 中存在拒絕服務弱點。

CVE-2022-24512 弱點 .NET 6.0、.NET 5.0 和 .NET Core 3.1 中會有遠端程式碼執行弱點,其中堆疊緩衝區溢位發生在 .NET Double Parse 常式中。

CVE-2021-3711 OpenSSL 緩衝區溢位弱點 Git for Windows 所取用的 OpenSSL 中會有潛在的緩衝區溢位弱點。 Git for Windows 現在已更新為 2.35.1.2 版,可解決此問題。


Release Notes Icon Visual Studio 2019 16.9.17 版

2022 年 2 月 8 日發行

此版本中已解決的問題:

資訊安全諮詢注意事項

CVE-2022-21986 弱點 當 Kestrel Web 服務器處理特定 HTTP/2 和 HTTP/3 要求時,.NET 5.0 和 .NET 6.0 中存在拒絕服務弱點

CVE-2022-21871 診斷中樞標準收集器執行階段權限提高弱點 如果診斷中樞標準收集器未正確處理資料作業,則會有權限提高弱點。


Release Notes Icon Visual Studio 2019 16.9.16 版

2022 年 1 月 11 日發行

此版本中已解決的問題:

  • 已修正使用 Visual Studio 16.8.5 或更新版本建置大型專案時 link.exe 的間歇性損毀問題。
  • 已修正當 Windows 終端機做為預設終端機使用時,無法多次偵錯應用程式的問題。
  • 設定修正以解除封鎖受限制組態的客戶
  • 已修正導致用戶端無法更新較新啟動載入器的問題。 一旦用戶端使用 2022 年 1 月或更新版本的啟動載入器和安裝程式後,所有使用後續啟動載入器的更新都應該在產品生命週期的持續時間內運作。

開發人員社群的問題


Release Notes Icon Visual Studio 2019 16.9.15 版

2021 年 12 月 14 日發行

此版本中已解決的問題:

  • 已將 Python 3.9.7 新增至 Python 工作負載。 已移除因安全性弱點而移除 Python 3.7.8。

資訊安全諮詢注意事項

CVE-2021-43877 弱點 ANCM 中存在權限弱點提高,當 .NET core、.NET 5 和 .NET 6 應用程式裝載於 IIS 內時,可能會允許權限提高。


Release Notes Icon Visual Studio 2019 16.9.14 版

2021 年 11 月 16 日發行

此版本中已解決的問題:

  • 啟動載入器現在會遵守 --useLatestInstaller 參數,這會導致最新的安裝程式整合到配置中。 此最新安裝程式隨附於 Visual Studio 2022,可讓企業想要將其用戶端從一個配置位置轉換到另一個配置位置的案例。 如需詳細資訊,請參閱 [Visual Studio 系統管理員指南](* 啟動載入器現在會遵守 --useLatestInstaller 參數,這會導致最新的安裝程式整合到配置中。此最新安裝程式隨附於 Visual Studio 2022,可讓企業想要將其用戶端從一個配置位置轉換到另一個配置位置的案例。如需詳細資訊,請參閱 Visual Studio 系統管理員指南

Release Notes Icon Visual Studio 2019 16.9.13 版

2021 年 11 月 09 日發行

此版本中已解決的問題:

  • 已修正導致開始功能表捷徑連結消失的錯誤。 僅當在同一部電腦上更新不同產品 SKU 的多個執行個體時,才會發生錯誤。

資訊安全諮詢注意事項

CVE-2021-42319 權限提高弱點 Visual Studio 安裝程式中包含的 WMI 提供者中會有權限提高弱點。

CVE-2021-42277 診斷中樞標準收集器服務權限提高弱點當診斷中樞標準收集器不正確地處理檔案作業時,就會有權限提高弱點。


Release Notes Icon Visual Studio 2019 16.9.12 版

2021 年 10 月 12 日發行

此版本中已解決的問題:

  • 更新二進位與 POGO 檢測執行階段之間的 ARM64 和 ARM64EC 介面。

資訊安全諮詢注意事項

CVE-2021-41355 .NET 5.0 中的洩漏弱點

.NET 中存在資訊洩漏弱點,其中 System.DirectoryServices.Protocols.LdapConnection 會在 Linux 上以純文字傳送認證。

CVE-2020-1971 OpenSSL 拒絕服務弱點

Git 取用的 OpenSSL 程式庫中存在潛在的拒絕服務弱點。

CVE-2021-3449 OpenSSL 拒絕服務弱點

Git 取用的 OpenSSL 程式庫中存在潛在的拒絕服務弱點。

CVE-2021-3450 OpenSSL 拒絕服務弱點

OpenSSL 程式庫中存在潛在的旗標略過,Git 會取用此程式庫。


Release Notes Icon Visual Studio 2019 16.9.11 版

2021 年 9 月 14 日發行

此版本中已解決的問題:

  • 我們已修正非具名結構 (其欄位是從 SAL 註釋參考) 所造成的嚴重內部編譯器錯誤。
  • 修正在分析使用 __uuidof 的樣板化程式碼時,發生罕見的當機問題。

資訊安全諮詢注意事項

CVE-2021-26434 Visual Studio 權限指派權限提升弱點不正確

使用 C++ 安裝遊戲開發並選取 Unreal Engine 安裝程式工作負載之後,Visual Studio 中會有權限指派弱點。 系統在安裝期間容易受到 LPE 的影響,其會建立具有所有使用者寫入存取權的目錄。

開發人員社群的問題


Release Notes Icon Visual Studio 2019 16.9.10 版

2021 年 8 月 10 日發行

此版本中已解決的問題:

  • 在報告安裝了哪些延伸模組時不再傳送磁碟上的路徑。
  • 已修正在處理類別內範本特製化中的靜態資料成員時所發生的 IntelliSense 損毀問題。
  • 已修正影響更新命令命令列執行的問題。 如果更新第一次失敗,後續發行的 update 命令現在會導致更新從其在先前作業離開之處繼續進行。

資訊安全諮詢注意事項

CVE-2021-26423 .NET Core 拒絕服務弱點

存在拒絕服務弱點,其中提供 WebSocket 端點的 .NET (核心) 伺服器應用程式在嘗試讀取單一 WebSocket 框架時可能會陷入無限循環。

CVE-2021-34485 .NET Core 資訊洩漏弱點

使用 Linux 和 macOS 上的全域讀取權限建立由工具所建立的損毀傾印和隨需傾印時,存在資訊洩漏弱點。

CVE-2021-34532 ASP.NET Core 資訊洩漏弱點

如果無法剖析 JWT 權杖,則存在資訊洩漏弱點。


Release Notes Icon Visual Studio 2019 16.9.9 版

2021 年 7 月 13 日發行

此版本中已解決的問題:

  • 已修正使用增益集時 Outlook 損毀的 ARM64X 問題。
  • 已修正 C++ 編譯器錯誤執行 if 轉換的問題。
  • 已修正最新 Windows 更新上的 ASan 相容性問題。
  • ASan 不再報告誤報的 memcpy 記憶體區域重疊錯誤。
  • 具有陣列型別未命名函式參數的函式範本會導致剖析器略過後續的函式定義,進而導致在評估常數運算式中呼叫函式時未定義該函式的假 constexpr 錯誤。 此修正重新啟用了對略過的函式定義的剖析。
  • 我們已修正由其中一個檢查器延伸模組 (該延伸模組發現了誤用 VARIANT 的錯誤) 所引起的效能問題和誤報問題。
  • 我們已修正由其中一個檢查器延伸模組 (該延伸模組發現了誤用列舉值作為索引的錯誤) 所引起的效能問題。
  • 已修正編譯多個 TU 時出現的記憶體不足洩漏問題。
  • 在使用自動鎖定模式的情況下,並行分析器應該不會再產生錯誤的警告 C26110 (無法取得鎖定)。
  • 此修正會透過略過外部標頭的分析並隱藏來自外部標頭的警告,以還原外部標頭的行為。
  • 程式代碼分析中的並行檢查變得更加聰明。 在具有複雜控制流程的情況下它們更難被欺騙。
  • 已修正與建立版面配置相關的問題。
  • 已修正更新可能因缺少更新通道資訊而失敗的問題。

開發人員社群的問題


Release Notes Icon Visual Studio 2019 16.9.8 版

2021 年 6 月 15 日發行

開發人員社群的問題


Release Notes Icon Visual Studio 2019 16.9.7 版

2021 年 6 月 8 日發行

此版本中已解決的問題:

  • 已修正 SSA 指令複製器中的錯誤。
  • 已修正造成 mspdbcore.dll 損毀的問題。
  • 已修正客戶程式碼基底的長時間執行/逾時的建置問題。
  • 已修正阻止開發人員建置 PyTorch 的問題。
  • 修正了使用 32 位元 MSBuild.exe 處理序建置大型程式碼基底時出現的內部 MSBuild 錯誤 (MSB0001)。
  • 已修正當開發人員嘗試檢視對應的連接埠,然後再切換到其他容器時,[容器工具視窗] 中導致 Visual Studio 2019 損毀的問題。

資訊安全諮詢注意事項

CVE-2021-31957 ASP.NET 阻斷服務弱點

當 ASP.NET Core 不正確地處理用戶端中斷連線時,會存在阻斷服務弱點。

開發人員社群的問題

開發人員社群有一個此版本中所有發佈項目的完整清單。

以下是 16.9.7 中發佈的一些投票數最高的問題:

Release Notes Icon Visual Studio 2019 16.9.6 版

2021 年 5 月 18 日發行

此版本中已解決的問題:

  • 修正了「無法存取已處置的物件。 物件名稱:'System.Net.Http.StringContent'」(嘗試建立憑證或執行自動化佈建時) 的問題。
  • 已修正導致 iOS 熱重新啟動功能無法正常運作的問題。

開發人員社群的問題

開發人員社群有一個此版本中所有發佈項目的完整清單。

以下是 16.9.6 中發佈的一些投票數最高的問題:


Release Notes Icon Visual Studio 2019 16.9.5 版

2021 年 5 月 11 日發行

此版本中已解決的問題:

  • 已修正使用匯出時 Office 工具無法如預期運作的問題。
  • 已修正在 x64 與 ARM64EC DLL 之間的某些虛擬呼叫期間所發生的 Visual Studio 2019 損毀問題。
  • 已解決執行多執行緒 ASan 檢測程式碼時的誤報問題。
  • 已修正產生 "HRESULT E_FAIL has been returned from a call to COM component" 錯誤的專案失敗問題。
  • 修正了啟動時開啟 C++ 檔案時偶爾會導致 Visual Studio 2019 停止回應的問題。
  • 已修正 CmakeSettings.json 檔案組態中新設定無法保留的問題。
  • 當檔案路徑包含一或多個非 ASCII 字元時分析原始檔而導致的內部編譯器錯誤已修正。
  • 已修正開啟涵蓋範圍檔案時出現的問題,其中一個程式庫在程式碼涵蓋範圍檔案中有多個項目。
  • 已修正一個導致使用啟用了遠端桌面的非工作帳戶登入的客戶可能會導致存取被拒絕的錯誤。
  • 已修正當開發人員自訂功能表並按一下自訂對話方塊中的分隔符號時會導致 Visual Studio 2019 損毀的錯誤問題。
  • 開啟方案時會還原浮動的文件視窗。
  • 已修正當系統管理員為部署更新而建立 Visual Studio 新版面配置時,導致更新失敗的問題。 由於版面配置已移動位置,用戶端電腦更新將會失敗。
  • 已修正導致啟用快速部署的專案建置失敗或部署需要很長時間的問題。
  • 已新增 Xcode 12.5 支援。
  • 已修正當系統管理員為部署更新而建立 Visual Studio 新版面配置時,導致更新失敗的問題。 由於版面配置已移動位置,用戶端電腦更新將會失敗。

資訊安全諮詢注意事項

CVE-2021-27068 在內嵌的資料夾中植入 python.exe 時可能會有遠端程式碼執行 (RCE) 攻擊的風險

使用 Python 程式碼開啟工作區且該工作區在指令碼子資料夾中包含 python.exe 時,會有遠端程式碼執行的漏洞問題。

CVE-2021-31204 .NET Core 權限提高弱點

當使用者在基於 Linux 或 macOS 的作業系統上執行單一檔案的應用程式時,.NET 5.0 和 .NET Core 3.1 中會存在權限提高的漏洞問題。

開發人員社群的問題

開發人員社群有一個此版本中所有發佈項目的完整清單。

以下是 16.9.5 中發佈的一些投票數最高的問題:


Release Notes Icon Visual Studio 2019 16.9.4 版

2021 年 4 月 13 日發行

此版本中已解決的問題:

  • 已修正導致非相依基底類別中某些形式的範本名稱出現錯誤的 SFINAE 錯誤。
  • 已修正 IntelliCode 嘗試登入暫存目錄而存取該暫存目錄被拒絕的情況問題。
  • 當同時安裝第三方權限管理軟體時,某些 Visual Studio 功能受到限制的問題已解決。
  • 已解決了客戶在 Xbox 上反覆啟動偵錯,消耗越來越多核心資源的問題。 最終需要重新啟動 XBox,這會失去任何狀態。
  • 已解決了在使用 Windows 的 Insider Preview 組建對原生程式碼進行偵錯時出現的卡住 (hang) 問題。
  • 已修正了鍵盤焦點的輔助功能錯誤。
  • 已在 [新增專案] 對話方塊中新增了缺少的 Xamarin 範本 (iOS/Android 類別庫、iOS/Android 繫結庫、Android Wear、Xamarin.UITest)。 這些範本被錯誤地隱藏了。
  • 對於使用 SSH 連線、以 Linux 為目標的 C++ CMake 型專案,在 CMakeSettings.json 中由 remoteCMakeListsRoot 屬性指定的目的地目錄已還原為 VS 16.8 中的先前行為,其中複本的目的地對應於來源目錄的根目錄。 「連接到遠端 Linux 機器的連線使用了不正確的目的地路徑」問題卷中的詳細資訊。

資訊安全諮詢注意事項

CVE-2021-27064 Visual Studio 安裝程式權限提高弱點

當 Visual Studio 安裝程式在提升狀態下執行意見反應用戶端時,會存在遠端程式碼執行弱點。

CVE-2021-28313 / CVE-2021-28321 / CVE-2021-28322 診斷中樞標準收集器服務權限提高弱點

當診斷中樞標準收集器未正確處理資料作業時,即會存在權限提升弱點。

開發人員社群的問題

開發人員社群有一個此版本中所有發佈項目的完整清單。

以下是 16.9.4 中發佈的一些投票數最高的問題:


Release Notes Icon Visual Studio 2019 16.9.3 版

2021 年 3 月 30 日發行

此版本中已解決的問題:

  • 已修正使用包含網站專案的 MSBuild.exe 建置方案時所發生的 MSBuild 損毀問題。
  • 已修正因 ServiceHub 上的某些相依性而導致的損毀情況問題。
  • 已修正了 Xbox 或 IoT 裝置上的 XAML 視覺化診斷工具的使用者被禁止進行遠端偵錯的封鎖問題。

開發人員社群的問題

開發人員社群有一個此版本中所有發佈項目的完整清單。

以下是 16.9.3 中發佈的一些投票數最高的問題:


Release Notes Icon Visual Studio 2019 16.9.2 版

2021 年 3 月 16 日發行

此版本中已解決的問題:

  • 更新 ARM64X 全域函式指標名稱
  • 修正了使用連結 -lib -extract 擷取 ARM64X LIB 的第一個 OBJ 的問題
  • 透過 Address Sanitizer 和最佳化,已修正程式碼編譯可能會產生錯誤程式碼並導致 Visual Studio 2019 損毀的錯誤。
  • 已修正了透過 [資源編輯器] 中的 [對話方塊編輯器] 新增功能所導致的損毀問題
  • Nuget.org 不再需要以套件來源的形式被移除兩次
  • 已改善 NuGet 套件剖析效能
  • 已修正了客戶在 [伺服器總管] 中使用 Azure SQL Database 節點時收到的有關已淘汰 API 的錯誤訊息
  • 已修正導致此錯誤訊息 (指出 CascadePackage 未正確載入) 的問題
  • 已修正了導致啟用快速部署的建置專案失敗或需要額外時間的問題
  • 已修正導致「熱重新載入」現在會在 [完整頁面] 模式下顯示已儲存的變更的問題
  • 已修正「熱重新載入」導致「即時視覺化樹狀結構」無法運作或套用變更的問題。

開發人員社群的問題

開發人員社群有一個此版本中所有發佈項目的完整清單。

以下是 16.9.2 中發佈的一些投票數最高的問題:


Release Notes Icon Visual Studio 2019 16.9.1 版

2021 年 3 月 9 日發行

資訊安全諮詢注意事項

CVE-2021-21300 Git for Visual Studio 遠端程式碼執行弱點

當 Visual Studio 複製惡意存放庫時,就會存在遠端程式碼執行弱點。

CVE-2021-26701 .NET Core 遠端程式碼執行弱點

由於文字編碼的執行方式,.NET 5 和 .NET Core 中存在遠端程式碼執行弱點。

此版本中已解決的問題:

  • 修正了將不正確的 ARM64EC 中繼資料輸出到 OBJ 的問題。
  • 已修正啟用 FixIts (預設選項) 的 C++ 在開啟程式碼時會看到錯誤波浪線的問題。
  • 在某些情況下,C++ IntelliSense 會嘗試使用極大數目的包含路徑,導致變得無法回應。
  • 已提升了 C++ 情境下 Live Share 的穩定性。
  • 已修正 IntelliCode 會停止載入符號的問題。
  • 在使用者啟用新的實驗性 Razor 編輯器的情境下,改善了解決方案載入和關閉時間的問題。
  • 已修正在 ServiceHub 中開啟 [擴充功能和更新] 對話方塊然後關閉 Visual Studio 後可能發生的損毀情況問題。
  • 已修正在速度較慢的機器上檢查更新時會顯示沒有可用更新的訊息的錯誤。
  • 提高了累加變更期間從 Visual Studio 啟動 WAP 專案的效能。
  • 已修正使用義大利語地區設定時會導致安裝程式啟動失敗的問題。
  • 已修正了一個升級情境問題,該情境會在初始化 .NET Core 範本快取時導致安裝程序停止回應很長一段時間。

開發人員社群的問題

開發人員社群有一個此版本中所有發佈項目的完整清單。

以下是 16.9.1 中發佈的一些投票數最高的問題:


Release Notes Icon Visual Studio 2019 16.9.0 版

2021 年 3 月 2 日發行

此 Visual Studio 2019 16.9.0 版發行版本的新功能摘要

C++

  • Address Sanitizer:
    • 我們在 Windows 上的 Address Sanitizer 支援現已退出實驗性階段,且已正式提供一般使用。
    • 已擴充 RtlAllocateHeap 支援、修正 RtlCreateHeap 與 RtlAllocateHeap 攔截器在建立可執行檔記憶體集區時的相容性問題。
    • 已新增對舊版 GlobalAlloc 與 LocalAlloc 記憶體函式系列的支援。 您可以使用 ASAN_OPTIONS=windows_hook_legacy_allocators=true 來啟用這些攔截器。
    • 已更新陰影記憶體交錯和攔截失敗的錯誤訊息,以明確顯示問題與解決方案。
    • IDE 整合現在可以處理 ASan 所能回報的完整例外狀況集合。
    • 如果編譯器與連結器偵測到您正在使用 ASan 進行建置,但並未發出偵錯資訊,其將會建議發出偵錯資訊
  • 您現在可以使用新的 CL 參數 /openmp:llvm 將目標設為 OpenMP 執行階段的 LLVM 版本。 這能加入在 #pragma omp 區段上使用 lastprivate 子句,以及針對迴圈使用平行的不帶正負號索引變數的支援。 /openmp:llvm 參數目前只能針對 amd64 目標使用,且仍處於實驗階段。
  • Visual Studio CMake 專案現已具有針對遠端 Windows 開發的一級支援。 這包括設定 CMake 專案以將 Windows ARM64 設為目標、將專案部署到遠端 Windows 電腦,以及從 Visual Studio 針對遠端 Windows 電腦上的專案進行偵錯。
  • 隨附於 Windows 版 Visual Studio 的 Ninja 版本已更新到 1.10 版。 請參閱 Ninja 1.10 版本資訊 \(英文\) 以取得所包含內容的詳細資料。
  • 隨附於 Visual Studio 的 CMake 版本已經更新到 3.19 版。 請參閱 CMake 3.19 版本資訊 \(英文\) 以取得所包含內容的詳細資料。
  • 已將 STL 中許多 lock/guard 型別標示為 nodiscard:https://github.com/microsoft/STL/pull/1495 \(英文\)
  • IntelliSense:
  • MSVC 現在可判斷二進位檔所需的正確位址清理程式執行階段。 Visual Studio 專案會自動取得新的變更。 在命令列上使用位址清理程式時,現在只需要將 /fsanitize=address 傳遞給編譯器即可。
  • Visual Studio 的連線管理員現在支援使用 ECDSA 公開金鑰演算法的私密金鑰。
  • 安裝程式隨附的 LLVM 與 Clang 版本已更新為 v11。 如需詳細資訊,請參閱 LLVMClang 的版本資訊。
  • Visual Studio 現在會使用工具鏈檔案中的 CMake 變數來設定 IntelliSense。 這會為內嵌式和 Android 開發提供更佳體驗。
  • 實作 More Constexpr Containers 提議 \(英文\),其允許使用解構函式與新運算式作為 constexpr。 這可為 constexpr std::vector 與 std::string 等公用程式鋪路。
  • 針對 C++20 模組 IntelliSense 擴充支援,包括移至定義、移至模組及成員自動完成。
  • MSVC 編譯器現在支援縮寫的函式範本

JavaScript/TypeScript

  • 針對如 WPF、WinForms 與 WinUI 3 專案的應用程式,現已支援進行 Edge Chromium 型的 WebView2 JavaScript/TypeScript 偵錯。 這可以透過選取 [專案屬性] 對話方塊中的 JavaScript 偵錯工具來加以啟用。 如需如何開始使用的詳細資料,請參閱這裡 \(英文\)

Debugger

  • 已新增了一個新的自動分析器,用於檢查執行緒是否有死結。
Auto Analyzer that inspects threads for deadlocks
  • 已新增能檢查 .NET Core 完成項佇列並偵測潛在封鎖物件的新自動分析器。
Auto Analyzer that inspects the .NET Core Finalizer queue
  • 當偵錯工具停止 StackOverflow 例外狀況時,Visual Studio 現在會從呼叫堆疊中篩選出多餘的重複框架。 現在可以看到產生無限遞迴的堆疊基底,這有望讓調查此類的錯誤變得更容易。
Filters out redundant repeating frames from the call stack when the debugger stops on a StackOverflow Exception

分析工具

  • 已新增較快的新動態檢測情境 (不需要 VSInstr),並允許檢測 .NET Core 應用程式,而不需要 PDB。
Dynamic Instrumentation Profiling

F# 和 F# 工具

此版本有數個 Visual Studio 的 F# 工具生產力功能和效能改善:

  • .NET Core FSI 支援
  • 函式應用程式的簽章說明
  • 14 個新的快速修正
  • F# 工具的重大效能和回應性修正

您可以在 Visual Studio 16.9 的 F# 和 F# 工具更新產品版本資訊中閱讀有關它們的資訊。

.NET 生產力

  • 現已針對前置處理器符號提供 IntelliSense 完成。
  • 方案總管現在會顯示新的 .NET 5.0 原始程式碼產生器。
  • [移至全部] 將不會顯示 netcoreapp3.1 與 netcoreapp2.0 之間的重複結果。
  • [快速諮詢] 現在會針對歸併顯示編譯器警告識別碼或編號。
  • 現在將類型複製並貼到新的檔案時,會自動新增 Using 指示詞。
  • 當按下 ; 以接受完成清單中的方法時,IntelliSense 現在會針對物件建立和方法呼叫自動插入括弧以及分號。
  • C# 9.0 記錄的語意顏色標示。
  • 重構會移除不必要的捨棄項目。
  • 將逐字字串與一般字串轉換為差補字串的重構,該差補字串會保留要位在輸出中的大括號。
  • Visual Basic 中的程式碼修正,會在您轉換與「模組」共用的方法時,移除 shared 關鍵字。
  • 有建議在非爭議案例中使用 new(…) 的重構
  • 有針對 C# 與 Visual Basic 移除多餘相等運算式的程式碼修正
  • .NET 程式碼樣式 (IDE) 分析器現在可在組建上強制執行
  • Syntax Visualizer 會針對增強色彩顯示目前的前景色彩
  • 將滑鼠游標暫留在 pragma 警告的診斷識別碼上時會出現新的工具提示
  • 現在當您在註解內輸入 Return 鍵時,會自動將新行註解化
  • 內嵌參數名稱提示增強功能
  • 使用 WSL 2 的 .NET Core 偵錯

測試總管音訊提示和協助工具更新

  • 您現在可以使用測試總管設定音訊提示、[群組依據] 功能表已更容易由螢幕助讀程式存取,而且已可以使用可點選的連結來直接開啟記錄檔,以更輕鬆地檢視冗長的測試輸出。

實驗性 Razor 編輯器更新

  • HTML 與 C# 語意色彩標示
  • 將封閉式 Razor 檔案中反映的 C# 符號重新命名
  • 在 Razor 檔案中提供更多 C# 燈泡
  • 進一步改善 Razor 檔案中的混合內容格式設定

.NET Web 工具

Web 工具

  • 適用於 Azure 應用程式組態作為連線服務 \(部分機器翻譯\) 的增強 .NET 支援
  • 透過將 Azure 應用程式組態整合為已連線的服務,來管理應用程式的組態設定與功能旗標

XAML 工具 (WPF、WinUI、UWP 和 Xamarin.Forms)

MVVM 工具

  • 已改善的 MVVM 支援: 在此版本中,我們已在 XAML 編輯器中引進了燈泡,以在可用的檢視模型中產生屬性和命令。 我們還新增了燈泡來幫助將 XAML 中的設計 DataContext 設為可用的檢視模型,以改進繫結 IntelliSense。

Xamarin.Forms

在此版本中,我們已為 Xamarin.Forms 開發人員進行了多項改善:

  • XAML 熱重新載入「僅限變更」模式現在是 Xamarin.Forms 5.x 專案的預設值: 從 Visual Studio 16.9 開始,XAML 熱重新載入「僅限變更」模式現在是以 Xamarin.Forms 5.x 或更新版本為目標之專案的預設 XAML 熱重新載入體驗。 以 4.x 為目標的專案會自動回復為「完整頁面」XAML 熱重新載入,因為「僅限變更」僅與 Xamarin.Forms 5.x 或更新版相容。 如果您使用 Xamarin.Forms 5.x,並想要基於某些原因使用舊的「完整頁面」熱重新載入模式,您可以前往 [工具 > 選項 > 偵錯 > 熱重新載入] 底下的 [熱重新載入] 設定來實現。

  • 輸出視窗中的 XAML 熱重新載入狀態更新: 使用 XAML 熱重新載入的 Xamarin.Forms 客戶現在可以使用輸出視窗來查看有關 XAML 熱重新載入管線所發生情況的更多詳細資料。 若要開始,請使用 [檢視 > 輸出] 開啟輸出視窗,然後在視窗頂端的 [顯示來自以下位置的輸出] 底下選取 [Xamarin 熱重新載入]

XAML Hot Reload - Output window information
  • Xamarin.Forms + UWP – 已解決 System.ExecutionEngineException 錯誤問題: 從 Visual Studio 2019 16.8 版開始,我們無意中引入了一個執行階段例外狀況,當開發人員偵錯以 Windows (UWP) 為目標的 Xamarin.Forms 應用程式時,該例外狀況會觸發 System.ExecutionEngineException 錯誤。 從此版本 (16.9 Preview 4) 開始,並結合 Microsoft.NETCore.UniversalWindowsPlatform NuGet (版本 6.2.12+) 的更新,此問題現在應該得到解決。 注意:此修正不僅適用於 Visual Studio 2019 16.9 版。 更新您的專案來使用新的 NuGet 套件應該也可以解決 Visual Studio 16.9 版的這個問題。

用於 Unity 的工具

  • 在 [區域] 視窗的新 [使用中場景] 節點中偵錯時檢視根遊戲物件。
  • 在 [區域] 視窗的新 this.gameObject 節點中偵錯時檢視 GameObject 上的所有元件。
  • 使用 [區域] 視窗的 [子系和元件] 節點檢視所有子系遊戲物件和元件。
  • 在 Active Scene 屬性中檢查時查看場景中 GameObject 的位置。
  • 搭配來源產生器使用實體時支援 JobEntityBatch/Lambda。
  • 已改善對顯示大型陣列的支援 (使用索引貯體)。
  • 光線追蹤著色器、UXML 和 USS 檔案的語法反白顯示。
  • Visual Studio 現在會偵測哪些元件遺漏,並在使用 Unity 專案時,提示您安裝這些元件。
  • 已更新了 Unity 訊息 API (適用於用作協同程式的所有方法)。

Git 生產力

  • 我們已更新了新的 Git UX 的預覽功能旗標,當中有一個內建的 [提供意見反應] 連結,可將您直接引導至產品團隊。
  • Team Explorer 的 [首頁] 和 [連線] 頁面會顯示要轉換至新 Git UX 的詳細內容。
  • 支援分支推播通知中的自訂遠端存放庫。
  • 按兩下 [Git 存放庫] 視窗中的分支來簽出。
  • 使用鍵盤快速鍵 (Ctrl + Enter) 提交變更。
  • 從 Git [變更] 視窗推送所有標記。

Visual Studio 安裝程式

  • Visual Studio 安裝程式不再於啟動時提高權限
  • Visual Studio 安裝程式現在支援 HDR 顯示
  • Visual Studio 安裝程式支援導覽器螢幕助讀程式
  • 已將安裝程式更新簡化為 Visual Studio 更新
  • Visual Studio 安裝程式新增了深色主題支援

Visual Studio 2019 16.9.0 版的新功能詳細資料

Git 生產力

  • 使用鍵盤快速鍵 (Ctrl + Enter) 認可變更
Ctrl+Enter to Commit
使用 Ctrl+Enter 認可變更
  • 從 Git [變更] 視窗推送所有標記。
Push all Tags
將所有標記推送到您的遠端

.NET 生產力

  • 使用 WSL 2 的 .NET Core 偵錯可讓您從 Visual Studio 於 WSL 2 中執行 .NET Core 主控台與 Web 應用程式,並對其進行偵錯。 這可讓以 Linux 實際執行環境為目標的 Windows 開發人員獲得更加精確的本機偵錯體驗。
.NET Core Debugging with WSL 2
使用 WSL 2 的 .NET Core 偵錯
  • 現在有建議在非爭議案例中使用 new(…) 的重構。 將滑鼠游標放在欄位宣告上。 按下 (Ctrl++.),以觸發 [快速動作與重構] 功能表。 選取 [Use ‘new(…)’] \(使用 ‘new(…)’\)。
Use new(...) refactoring
[Use new(...)] \(使用 new(...)\) 重構
  • 現在有針對 C# 與 Visual Basic 移除多餘相等運算式的程式碼修正。 將滑鼠游標放在多餘相等運算式上。 按下 (Ctrl++.),以觸發 [快速動作與重構] 功能表。 選取 [Remove redundant equality] \(移除多餘相等\)。
Remove redundant equality expressions code fix
[Remove redundant equality] \(移除多餘相等\) 運算式程式碼修正
  • .NET 程式碼樣式 (IDE) 分析器現在可在組建上強制執行。 您可以針對 C# \(英文\) 與 Visual Basic \(英文\) 將 .NET 程式碼樣式分析器安裝為 NuGet 套件,或是在 [專案屬性] 中加以啟用。 若要存取 [專案屬性],請以滑鼠右鍵按一下 [方案總管] 中的專案,然後選取 [屬性]。 接下來,選取 [程式碼分析] 索引標籤,在其中您可以選取 [Enforce CodeStyle on build (experimental)] \(在組建上強制執行 CodeStyle (實驗性)\)。
Project Properties window to enable .NET Code Style Analyzers
啟用 .NET 程式碼樣式分析器的 [專案屬性] 視窗
  • Syntax Visualizer (會隨著 .NET Compiler Platform SDK 一起安裝) 現在會針對增強色彩顯示目前的前景色彩。 您只需使用視覺化檢視來瀏覽到想要變更色彩的文字 (或是在編輯器中加以選取),然後按一下分類的色彩來加以變更。
Syntax Visualizer Colorization
Syntax Visualizer 色彩標示
  • 現在將滑鼠游標暫留於 pragma 警告的診斷識別碼上時會出現工具提示。 診斷工具提示也會有可按一下的連結,其能瀏覽到文件。
Diagnostic Tooltip for Pragma Warnings
Pragma 警告的診斷工具提示
  • 現在當您在註解內輸入 Return 鍵時,您可能會注意到系統會自動將新行註解化。這是預設開啟的新選項。 若要避免系統自動將新行註解化,請移至 [工具]>[選項]>[文字編輯器]>[C#] 或 [Basic]>[進階],然後取消選取 [在寫入 // 時,於新行開頭插入 //]

在 16.8 Preview 2 中,我們已新增內嵌參數名稱提示 \(部分機器翻譯\),其會在函式呼叫中的每個引數之前插入常值、轉換常值與物件具現化的裝飾。 在此版本中,我們已新增下列增強功能:

  • 針對您想要插入的裝飾類型提供更多自訂選項。

  • 適用於具有推斷類型與 Lambda 參數類型之變數的內嵌類型提示。

  • 在參數名稱符合方法的意圖,以及在參數名稱之間的差異只有尾碼時,停用內嵌參數名稱提示的選項。

  • 現在將類型複製並貼到新的檔案時,會自動新增 Using 指示詞。 您必須先開啟此選項,其位在 [工具]>[選項]>[文字編輯器]>[C#] 或 [Basic]>[進階],然後選取 [Add missing using directives on paste] \(貼上時新增缺少的 Using 指示詞\)

Add missing using directives on paste
貼上時新增缺少的 Using 指示詞
  • 當按下 ; 以接受完成清單中的方法時,IntelliSense 現在會針對物件建立和方法呼叫自動插入括弧以及分號。
Method call completion
方法呼叫完成
  • C# 9.0 記錄現在具有語意顏色標示。 您可從 [工具]>[選項]>[環境][字型和色彩]> 來自訂顏色。 在 [顯示項目] 中,捲動至 [使用者類型 - 記錄],然後選取所要套用至記錄的色彩。
Semantic colorization for records
記錄的語意顏色標示
  • 在 C# 9.0 中,某些模式比對案例不需要捨棄項目。 我們會逐漸淘汰不必要的捨棄項目,並提供程式碼修正來予以移除。 將游標停留在逐漸淘汰的捨棄項目上。 按下 (Ctrl++.),以觸發 [快速動作與重構] 功能表。 選取 [移除不必要的捨棄項目]
Remove unnecessary discard
移除不必要的捨棄項目
  • 現在有將逐字字串與一般字串轉換為差補字串的重構,該差補字串會保留要位在輸出中的大括號。 如果將字串指派給常數,則不會提供這個重構。 將游標停留在字串上。 按下 (Ctrl++.),以觸發 [快速動作與重構] 功能表。 選取 [轉換為差補字串]
Convert to an interpolated string that will preserve curly braces
轉換為保留大括號的差補字串
  • Visual Basic 中現在提供程式碼修正,其會在您轉換與「模組」共用的方法時,移除 shared 關鍵字。

  • 現已針對前置處理器符號提供 IntelliSense 完成。 開始輸入 #if 指示詞來查看目前已在範圍中定義之符號的新完成選項。

IntelliSense completion for preprocessor symbols
適用於前置處理器符號的 IntelliSense 完成
  • 方案總管現在會在 [分析器] 節點底下顯示新的 .NET 5.0 原始程式碼產生器 \(英文\),使您可以輕鬆地瀏覽並檢視產生的程式碼。
Source Generators node in Solution Explorer
方案總管中的 [原始程式碼產生器] 節點
  • [移至全部] 視窗不會顯示 netcoreapp3.1 與 netcoreapp2.0 之間的重複結果,也不會顯示僅為包裝另一個巢狀型別而存在之部分型別的結果。 這有助於降低結果的雜亂程度,使您可以輕鬆尋找並瀏覽至程式碼。 結果現在也會包含部分符號的檔案名稱。
Go To All will not display duplicate results across netcoreapp3.1 and netcoreapp2.0
[移至全部] 不會顯示 netcoreapp3.1 與 netcoreapp2.0 之間的重複結果
  • [快速諮詢] 現在會針對歸併顯示編譯器警告識別碼或編號。 將滑鼠游標暫留在警告識別碼或編號上方,以檢視該診斷識別碼的 [快速諮詢]。
Quick Info on compiler warning IDs or numbers for suppressions
針對適用於歸併的編譯器警告識別碼或編號的 [快速諮詢]

謝謝

最後的重要事項:由衷「感謝」本月度為 .NET 生產力有所貢獻的下列人員 (別名Roslyn):

.NET Web 工具

  • 使用 Visual Studio 發佈 (例如,以滑鼠右鍵按一下 [方案總管] 中的 > [發佈]),將 Steeltoe 應用程式部署至 Azure Spring Cloud。 如果看不到此選項,請確定專案包含 NuGet 套件 Microsoft.Azure.SpringCloud.Client 版本 1.0.0-preview.1 或更新版本
Deploy your Steeltoe applications to Azure Spring Cloud
將 Steeltoe 應用程式部署到 Azure Spring Cloud

Web 工具

將應用程式組態新增為連線服務,以自動將您的應用程式連線到您的 Azure 應用程式組態資源。 現已支援針對 .NET Core 主控台專案自動產生程式碼,以及針對 .NET Framework 專案自動新增 NuGet 套件。 若要將此連線服務整合到您的應用程式,請按一下 [已連線的服務],然後將 [Azure 應用程式組態] 新增為 [服務相依性]

Add App Config to Connected Services
將應用程式組態新增為連線服務
  • [已連線的服務] 索引標籤現在支援 Azure 應用程式組態。 應用程式組態可讓您集中管理應用程式設定與功能旗標。 當您新增此服務相依性時,您的程式碼會自動更新以連線到您的應用程式組態資源。 這包括安裝最新的 NuGet 套件,並將您的密碼儲存在本機或 Key Vault。
Manage your configurations with Azure App Configuration
使用 Azure 應用程式組態服務連線來管理您的組態

Visual Studio 安裝程式

為回應客戶要求,Visual Studio 安裝程式已納入數個新功能。

許多使用者現在會使用安裝程式來識別、啟動及管理 Visual Studio 的多個複本。 為協助這種使用模式,Visual Studio 安裝程式在啟動時不再需要提高權限,只有在對 Visual Studio 和機器進行變更時,才需要提高權限。 其他活動 (例如匯出安裝組態、瀏覽新聞及查看更新詳細資料) 則不再需要使用者事先提高權限。

舊版安裝程式偶爾會要求使用者採取額外的步驟來更新安裝程式。 透過這項更新,現在會由安裝作業來處理必要的安裝程式更新,移除額外的步驟。

安裝程式現在新增了深色模式主題選項。 使用者可透過標題列中的太陽/月亮 (☼ / ☽) 按鈕來變更安裝程式主題。 從 Visual Studio IDE 內所啟動更新會使用 Visual Studio 的目前主題選項。

VS Installer with dark theme and inline installer update
具有深色主題與內嵌安裝程式更新的 VS 安裝程式

測試總管音訊提示和協助工具更新

  • 測試總管現在可以在測試回合完成時播放音效。 您可以選取兩種音效,一個用來指出測試回合已成功且所有測試皆已通過,另一個用來指出測試回合已完成且至少有一個測試失敗。 此功能是來自使用者的要求,且能透過新增音效提示來改善測試總管的可存取性,並協助具有視覺障礙的開發人員。 音效選取項目會使用預設的 Windows 10 [聲音] 對話方塊,您也可以在其中選取預設音效或「您電腦上的任何音訊檔案」
  • 測試總管中的 [群組依據] 現已更容易存取,並會在由螢幕助讀程式閱讀時,使用更加精簡的片語與文字順序。
  • 現在於測試總管中從 [測試詳細資料] 窗格檢視冗長的測試輸出已更加輕鬆,其會提供可直接開啟記錄檔的連結,而不是特殊的文件控制項。

測試體驗

  • 已為使用 Fakes 的 .NET Core 測試專案,針對收集程式碼涵蓋範圍新增支援。
  • 縮短了合併多個程式碼涵蓋範圍報表所需的時間。

IntelliCode

  • IntelliCode 現在會直接在 IntelliSense 完成清單內提供重複的編輯建議。 您可以檢視建議變更的預覽、在該位置套用,或直接在完成項目中略過這類建議。 深入了解 IntelliCode 的相關建議。(機器翻譯)

實驗性 Razor 編輯器更新

  • HTML 與 C# 語意色彩標示
  • 將封閉式 Razor 檔案中反映的 C# 符號重新命名
  • 在 Razor 檔案中提供更多 C# 燈泡:
    • 新增 DebuggerDisplay 屬性
    • 建立及指派屬性
    • 建立及指派欄位
    • 實作介面或抽象類別,包括針對「使用模式」(也就是「使用 Dispose 模式實作介面」) 的支援
    • 產生等於、雜湊碼、建構函式
  • 適用於參數的新增 Null 檢查與新增所有 Null 檢查
  • 進一步改善 Razor 檔案中的混合內容格式設定

若要啟用實驗性 Razor 編輯器,請移至 [工具]>[選項]>[環境]>[預覽功能],選取 [Enable experimental Razor editor] \(啟用實驗性 Razor 編輯器\),然後重新啟動 Visual Studio。

開發人員社群的問題

開發人員社群有一個此版本中所有發佈項目的完整清單。

以下是 16.9.0 中發佈的一些投票數最高的問題:


已知問題

遵循以下連結,查看所有已知問題和 Visual Studio 2019 中可用的因應措施。

意見反應與建議

我們很希望聽聽您的意見! 若有任何問題,請透過安裝程式或 Visual Studio IDE 本身右上角的回報問題選項來通知我們。 Feedback Icon 圖示位在右上角。 您可以在 Visual Studio 開發人員社群中提出產品建議或追蹤您的問題,也可以提出問題、尋找解答及提議新功能。 您也可以透過我們的即時聊天支援取得免費的安裝協助。


部落格

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


Visual Studio 2019 版本資訊歷程記錄

如需舊版 Visual Studio 2019 的相關詳細資訊,請參閱 Visual Studio 2019 版本資訊歷程記錄頁面。


頁首