Visual Studio IconVisual Studio 2019 16.4 版的版本資訊


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


注意

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



支援時間範圍

Visual Studio 2019 16.4 版的支援已中止。

Visual Studio 2019 16.4 版的 Enterprise 與 Professional 使用者都受到支援,並已在 2021 年 10 月收到安全性弱點的修正程式。 此時間範圍是由 2020 年 8 月的下列事實決定:Visual Studio 2019 16.7 版已指定為 Visual Studio 2019 產品的最終服務基準。 如需 Visual Studio 所支援基準的詳細資訊,請參閱 Visual Studio 2019 的支援原則。 

請參閱最新版的版本資訊,或造訪 Visual Studio 網站以下載最新支援的 Visual Studio 2019 版本。

Visual Studio 2019 16.4 版

封存的版本資訊

Visual Studio 2019 部落格

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


請參閱 Visual Studio 2019 16.4 版中所有開發人員社群項目的完整清單


Release Notes IconVisual Studio 2019 16.4.27 版

2021 年 10 月 12 日發行

Visual Studio 2019 16.4.27 版中所解決的常見問題

資訊安全諮詢注意事項

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

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

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

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

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

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


Release Notes IconVisual Studio 2019 16.4.26 版

2021 年 9 月 14 日發行

Visual Studio 2019 16.4.26 版中所解決的常見問題

資訊安全諮詢注意事項

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

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

CVE-2021-36952 Visual Studio 遠端程式碼執行弱點

當 Visual Studio 未正確處理記憶體中的物件時,即會存在遠端程式碼執行弱點。 成功惡意探索弱點的攻擊者可以在目前使用者的內容中執行任意程式碼。


Release Notes IconVisual Studio 2019 16.4.25 版

2021 年 8 月 10 日發行

Visual Studio 2019 16.4.25 版中所解決的常見問題

  • 已修正影響更新命令命令列執行的問題。 如果更新第一次失敗,後續發行的 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 IconVisual Studio 2019 16.4.24 版

2021 年 7 月 13 日發行

Visual Studio 2019 16.4.24 版中所解決的常見問題

  • 在 Visual Studio 2019 中插入的 .NET 3.1.117 SDK。

Release Notes Icon Visual Studio 2019 16.4.23 版

2021 年 6 月 8 日發行

Visual Studio 2019 16.4.23 版中修正的常見問題

資訊安全諮詢注意事項

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

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


Release Notes Icon Visual Studio 2019 16.4.22 版

2021 年 5 月 11 日發行

Visual Studio 2019 16.4.22 版中修正的常見問題

  • 已修正當系統管理員為部署更新而建立 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 中會存在權限提高的漏洞問題。


Release Notes Icon Visual Studio 2019 16.4.21 版

2021 年 4 月 13 日發行

Visual Studio 2019 16.4.21 版中修正的常見問題

資訊安全諮詢注意事項

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

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

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

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


Release Notes Icon Visual Studio 2019 16.4.20 版

2021 年 3 月 9 日發行

Visual Studio 2019 16.4.20 版中修正的常見問題

資訊安全諮詢注意事項

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

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

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

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


Release Notes Icon Visual Studio 2019 16.4.19 版

2021 年 2 月 10 日發行

Visual Studio 2019 16.4.19 版中修正的常見問題


Release Notes Icon Visual Studio 2019 16.4.18 版

2021 年 2 月 9 日發行

Visual Studio 2019 16.4.18 版中修正的常見問題

資訊安全諮詢注意事項

CVE-2021-1639 TypeScript 語言服務遠端程式碼執行弱點

當 Visual Studio 載入包含 JavaScript 或 TypeScript 程式碼檔案的惡意存放庫時,會存在遠端程式碼執行弱點。

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

在 X509 憑證鏈結建置期間建立 HTTPS Web 要求時,存在拒絕服務弱點。

CVE-2021-24112 .NET 5 和 .NET Core 遠端程式碼執行弱點

當圖形介面仍然參考中繼檔時處置中繼檔,會存在遠端程式碼執行弱點。 此弱點只存在於 MacOS 或 Linux 上執行的系統上。


Release Notes Icon Visual Studio 2019 16.4.17 版

發行於 2020 年 1 月 12 日

Visual Studio 2019 16.4.17 版中修正的重大問題

資訊安全諮詢注意事項

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

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

CVE-2020-26870 Visual Studio 安裝程式遠端程式碼執行弱點

當 Visual Studio 安裝程式嘗試顯示惡意 Markdown 時,即會存在遠端程式碼執行弱點。

CVE-2021-1723 .NET Core 及 Visual Studio 拒絕服務弱點

Kestrel 的實作中有拒絕服務弱點。


Release Notes Icon Visual Studio 2019 16.4.16 版

發行於 2020 年 12 月 8 日

Visual Studio 2019 16.4.16 版中修正的重大問題

資訊安全諮詢注意事項

CVE-2020-17156 Visual Studio 遠端程式碼執行弱點

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


Release Notes Icon Visual Studio 2019 16.4.15 版

2020 年 11 月 10 日發行

Visual Studio 2019 16.4.15 版中修正的重大問題

資訊安全諮詢注意事項

CVE-2020-17100 Visual Studio 竄改弱點

當適用於 Visual Studio 的 Python 工具建立 [python27] 資料夾時,會存在竄改弱點。 攻擊者若成功探索此弱點,即可在權限提升的內容中執行處理序。


Release Notes Icon Visual Studio 2019 16.4.14 版

發行於 2020 年 10 月 13 日

Visual Studio 2019 版本 16.4.14 中修正的重大問題

  • 已新增加入宣告旗標,以降低特定 Intel 處理器之 JCC Erratum \(英文\) 的效能影響。
  • PGO MEMMAX 切換的現在行為會更尊重使用者輸入。
  • 減少為 PGO 分析保留的記憶體數量。
  • .NET Core 2.1.13 執行階段與 3.1.109 SDK (3.1.9) 已新增至 Visual Studio 2019。

Release Notes Icon Visual Studio 2019 版本 16.4.13

2020 年 9 月 8 日發行

Visual Studio 2019 版本 16.4.13 中修正的重大問題

資訊安全諮詢注意事項

CVE-2020-1130 診斷中樞標準收集器權限提升弱點

當診斷中樞標準收集器未正確處理資料作業時,即會存在權限提升弱點。 攻擊者若成功探索此弱點,即可在權限提升的內容中執行處理序。

CVE-2020-1133 診斷中樞標準收集器權限提升弱點

當診斷中樞標準收集器未正確處理檔案作業時,即會存在權限提升弱點。 攻擊者若成功探索此弱點,即可在權限提升的內容中執行處理序。

CVE-2020-16856 Visual Studio 遠端程式碼執行弱點

當 Visual Studio 未正確處理記憶體中的物件時,即會存在遠端程式碼執行弱點。 成功惡意探索弱點的攻擊者可以在目前使用者的內容中執行任意程式碼。

CVE-2020-16874 Visual Studio 遠端程式碼執行弱點

當 Visual Studio 未正確處理記憶體中的物件時,即會存在遠端程式碼執行弱點。 成功惡意探索弱點的攻擊者可以在目前使用者的內容中執行任意程式碼。

CVE-2020-1045 Microsoft ASP.NET Core 安全性功能略過弱點

Microsoft ASP.NET Core 剖析已編碼 Cookie 名稱的方式有安全性功能略過弱點。 ASP.NET Core Cookie 剖析器會將整個 Cookie 字串解碼,這可能會讓惡意攻擊者設定以百分比將名稱編碼的第二個 Cookie。

16.4.13 中的其他修正

  • 修正在取消 C++ 建置時,有時候會導致 Visual Studio 或 MSBuild 停止回應的問題。
  • 若已從 Visual Stuidio 安裝程式中移除,則不支援的 .NET Core 版本將不會再於修復或升級期間重新安裝。

Release Notes Icon Visual Studio 2019 16.4.12 版

發行於 2020 年 8 月 11 日

Visual Studio 2019 16.4.12 版修正的重大問題

資訊安全諮詢注意事項

CVE-2020-1597

當 ASP.NET Core 不正確地處理 Web 要求時,就存在拒絕服務弱點。 成功惡意探索此弱點的攻擊者可能會導致 ASP.NET Core Web 應用程式面臨阻斷服務攻擊。 不需要驗證即可從遠端惡意探索此弱點。


Release Notes Icon Visual Studio 2019 16.4.11 版

發行於 2020 年 7 月 14 日

Visual Studio 2019 16.4.11 版中修正的前幾大問題

資訊安全諮詢注意事項

CVE-2020-1393 診斷中樞標準收集器服務權限弱點提高

當 Windows 診斷中樞標準收集器無法適當處理輸入時,即會造成權限弱點提高,因而導致不安全的程式庫載入行為。

CVE-2020-1416 Visual Studio 權限弱點提高

當 Visual Studio 載入軟體相依性時,即會造成權限弱點提高。

CVE-2020-1147 .NET Core 拒絕服務弱點

遠端未經驗證攻擊者可藉由向 ASP.NET Core 應用程式或其他剖析特定 XML 類型的應用程式發出特製要求,以惡意探索此弱點。 此安全性更新會限制 XML 承載中允許存在的類型,藉以解決此弱點。


Release Notes Icon Visual Studio 2019 16.4.10 版

2020 年 6 月 9 日發行

Visual Studio 2019 16.4.10 版中修正的重大問題

  • 修正了可在 setjmp 之後還原錯誤值的 Bug。

資訊安全諮詢注意事項

CVE-2020-1108 / CVE-2020-1108.NET Core 拒絕服務弱點

為了全面解決 CVE-2020-1108 的問題,Microsoft 發行了 .NET Core 2.1 和 .NET Core 3.1 的更新。 使用這些 .NET Core 版本中任何一個版本的客戶應該安裝最新版的 .NET Core。 如需最新版本號碼和更新 .NET Core 的指示,請參閱版本資訊

CVE-2020-1202 / CVE-2020-1203 診斷中樞標準收集器服務權限弱點提高

當診斷中樞標準收集器或 Visual Studio 標準收集器無法正確處理記憶體中的物件時,就會有權限提高弱點。

CVE-2020-1293 / CVE-2020-1278 / CVE-2020-1257 診斷中樞標準收集器服務權限弱點提高

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


Release Notes Icon Visual Studio 2019 16.4.9 版

2020 年 5 月 27 日發行

Visual Studio 2019 16.4.9 版修正的重大問題

  • 此版修正最佳化所用之分析中的快取 Bug,錯誤移除標示為不需要的指示的效果。 此修正在偵測我們需要將過時資料儲存到快取的情況。 要完整地描述此資訊清單的特性並不容易,但在報表中,這是迴圈中索引的模數運算子。 我們新增了 (不支援) /d2ssa-bit-estimator- flag,以便在未來能夠完全關閉特定的最佳化。 此旗標於這次修正新增,在先前的版本中並無此旗標。
  • 新增支援來降低 特定 Intel 處理器中的 Intel Jump Conditional Code (JCC) Erratum 微碼更新對效能的影響。
  • 修正 Lambda 區域變數會在程式碼分析期間,於 cl.exe 中引發不正確的 C6244 警告與損毀問題。
  • PREfast 16.5 對 Office 程式碼執行時的 ICE (英文)

Release Notes Icon Visual Studio 2019 16.4.8 版

2020 年 5 月 12 日發行

Visual Studio 2019 16.4.8 版修正的重大問題

  • 新增一項變更,其讓企業 IT 系統管理員和部署工程師能夠設定 Microsoft Update 用戶端與 SCCM 之類的工具,以判斷 Microsoft Update 目錄和 WSUS 上所裝載 VS2019 16.4 更新的適用性。

資訊安全諮詢注意事項

CVE-2020-1108 .NET Core 拒絕服務弱點

遠端未經驗證的攻擊者可藉由向 .NET Core 應用程式發出特製要求來惡意探索此弱點。 這項安全性更新會更正 .NET Core Web 應用程式處理 Web 要求的方式來解決弱點。

CVE-2020-1161 .NET Core 拒絕服務弱點

遠端未經驗證的攻擊者可以藉由向 ASP.NET Core 應用程式發出特製要求來惡意探索此弱點。 這項安全性更新會更正 ASP.NET Core Web 應用程式處理 Web 要求的方式來解決弱點。


Release Notes Icon Visual Studio 2019 16.4.7 版

2020 年 4 月 14 日發行

Visual Studio 2019 16.4.7 版修正的重大問題

資訊安全諮詢注意事項

CVE-2020-0899 Microsoft Visual Studio 權限提高弱點

當 Microsoft Visual Studio 更新程式服務未適當處理檔案權限時,就會存在權限提高弱點。 成功惡意探索此弱點的攻擊者可能會覆寫本機系統安全性內容中任意檔案內容。

CVE-2020-0900 Visual Studio 延伸模組安裝程式服務權限提高弱點

當 Visual Studio 延伸模組安裝程式服務未適當處理檔案作業時,就會存在權限提高弱點。 成功惡意探索此弱點的攻擊者可能會在具有權限提高其任意位置上刪除檔案。

CVE-2020-5260 由於 URL 驗證不足導致適用於 Visual Studio 的 Git 存在認證洩漏弱點

當特別製作的 URL 經過剖析並傳送給認證協助程式時,就會存在認證洩漏弱點。 這可能會導致將認證傳送至錯誤的主機。


Release Notes IconVisual Studio 2019 16.4.6 版

發行日期︰2020 年 3 月 10 日

Visual Studio 2019 16.4.6 版修正的幾大問題

資訊安全諮詢注意事項

CVE-2020-0793CVE-2020-0810:診斷中樞標準收集器服務權限提高弱點

當診斷中樞標準收集器不當處理檔案作業,或 Windows 診斷中樞標準收集器服務無法正確消毒輸入時,會暴露提高權限弱點。

CVE-2020-0884建立 Outlook Web 增益集時的詐騙弱點

若在啟用多重要素驗證的情況下建立 Outlook Web 增益集,因為其中包含的回覆 URL 未受 SSL 保護,所以會暴露詐騙弱點。 若攻擊者惡意探索此弱點成功,可能會危害存取權杖,而且會帶來安全性及隱私權外漏的風險。

CVE-2020-0789Visual Studio 延伸模組安裝程式服務拒絕服務弱點

當 Visual Studio 建伸模組安裝程式服務不當處理永久連結時,將會暴露拒絕服務弱點。 若攻擊者惡意探索此弱點成功,可能導致目標系統停止回應。


Release Notes Icon Visual Studio 2019 16.4.5 版

2020 年 2 月 11 日發行

Visual Studio 2019 16.4.5 版中已修正的主要問題


Release Notes Icon Visual Studio 2019 16.4.4 版

發行於 2020 年 1 月 30 日

Visual Studio 2019 16.4.4 版中已修正的主要問題


Release Notes Icon Visual Studio 2019 16.4.3 版

2020 年 1 月 14 日發行

資訊安全諮詢注意事項

CVE-2020-0602 ASP.NET Core 拒絕服務弱點

遠端未經驗證的攻擊者可以藉由向 ASP.NET Core 應用程式發出特製要求來惡意探索此弱點。 這項安全性更新會更正 ASP.NET Core Web 應用程式處理 Web 要求的方式來解決弱點。

CVE-2020-0603 ASP.NET Core 遠端程式碼執行弱點

遠端未經驗證的攻擊者可以藉由向 ASP.NET Core 應用程式發出特製要求來惡意探索此弱點。 這項安全性更新會更正 ASP.NET Core Web 應用程式在記憶體中的處理方式來解決弱點。

CVE-2020-0605 .NET Core 遠端程式碼執行弱點

若要利用此弱點,使用者必須以受影響的 .NET Core 版本來開啟特製的檔案。 在電子郵件攻擊案例中,攻擊者可以向使用者傳送特製的檔案,勸服使用者開啟該檔案以入侵此弱點。此安全性更新會修正 .NET Core 檢查檔案來源標記的方式來解決此弱點。

CVE-2020-0606 .NET Core 遠端程式碼執行弱點

若要利用此弱點,使用者必須以受影響的 .NET Core 版本來開啟特製的檔案。 在電子郵件攻擊案例中,攻擊者可以向使用者傳送特製的檔案,勸服使用者開啟該檔案以入侵此弱點。此安全性更新會修正 .NET Core 檢查檔案來源標記的方式來解決此弱點。

Visual Studio 2019 16.4.3 版中已修正的主要問題


Release Notes Icon Visual Studio 2019 16.4.2 版

發行於 2019 年 12 月 17 日

Visual Studio 2019 16.4.2 版中已修正的主要問題


Release Notes Icon Visual Studio 2019 16.4.1 版

發行於 2019 年 12 月 10 日

Visual Studio 2019 16.4.1 版中修正的主要問題

資訊安全諮詢注意事項

CVE-2019-1349 由於對子模組名稱的限制過於寬鬆,而產生的 Git for Visual Studio 遠端執行弱點

當 Git 與同層級子模組目錄的子模組名稱衝突時,就會產生遠端程式碼執行弱點。 惡意探索此弱點成功的攻擊者,可以遠端方式在目標電腦上執行程式碼。 此安全性更新會採用新版本的 Git for Windows 來解決此弱點,而子模組複製品的目錄必須為空白。

CVE-2019-1350 由於命令列引數的引用不正確,而產生的 Git for Visual Studio 遠端執行弱點

當 Git 在遞迴複製期間,搭配 SSH URL 使用特定引用方式來解譯命令列引數時,會產生遠端程式碼執行弱點。 惡意探索此弱點成功的攻擊者,可以遠端方式在目標電腦上執行程式碼。 此安全性更新會採用可修正此問題的新版 Git for Windows 來解決此弱點。

CVE-2019-1351 由於在複製期間使用了非字母的磁碟機名稱,而產生的 Git for Visual Studio 任意檔案覆寫弱點

當非字母的磁碟機名稱在 git clone 中略過安全性檢查時,Git 中會產生任意檔案覆寫弱點。 惡意探索此弱點成功的攻擊者,可在目標電腦上寫入任意檔案。 此安全性更新會採用可修正此問題的新版 Git for Windows 來解決此弱點。

CVE-2019-1352 由於未察覺 NTFS 替代資料流,而產生的 Git for Visual Studio 遠端執行弱點

透過 NTFS 替代資料流來複製及寫入 .git/ 目錄時,在 Git 中會產生遠端程式碼執行弱點。 惡意探索此弱點成功的攻擊者,可以遠端方式在目標電腦上執行程式碼。 此安全性更新會採用可察覺 NTFS 替代資料流的新版 Git for Windows 來解決此弱點。

CVE-2019-1354 由於未拒絕寫出包含反斜線的已追蹤檔案,而產生的 Git for Visual Studio 任意檔案覆寫弱點

當具有反斜線和惡意符號連結的樹狀目錄項目可能會中斷工作樹狀結構時,在 Git 中會產生任意檔案覆寫弱點。 惡意探索此弱點成功的攻擊者,可在目標電腦上寫入任意檔案。 此安全性更新會採用不允許這種反斜線使用方式的新版 Git for Windows 來解決此弱點。

CVE-2019-1387 由於對遞迴複製品子模組名稱的驗證過於寬鬆,而產生的 Git for Visual Studio 遠端執行弱點

使用子模組以遞迴方式複製時,在 Git 中會產生遠端程式碼執行弱點。 惡意探索此弱點成功的攻擊者,可以遠端方式在目標電腦上執行程式碼。 此安全性更新會採用可加強子模組名稱驗證的新版 Git for Windows 來解決此弱點。

CVE-2019-1486 Live Share 延伸模組 URL 重新導向弱點

當連至 Live Share 工作階段的來賓,重新導向至由工作階段主持人指定的任意 URL 時,在 Visual Studio Live Share 延伸模組中偵測到了詐騙漏洞。 攻擊者可成功惡意探索此弱點,並可在未經明確同意的情況下,讓來賓電腦開啟瀏覽器並瀏覽至惡意 URL。 這是 Live Share「共用伺服器」功能的一部分,會在作用中的 Live Share 工作階段期間允許自動連接埠轉送。 最新的更新,會在瀏覽由主持人指定的 URL 之前,先提示 Live Share 來賓予以同意,以解決此弱點。


Release Notes Icon Visual Studio 2019 16.4 版

發行於 2019 年 12 月 3 日

Visual Studio 2019 16.4 版的新功能摘要

  • Visual Studio 現在支援「FIPS 合規性模式」
  • XAML 設計工具縮放/位置現在預設為 [調整成畫面大小]。
  • 新增了 [建立資料繫結] 對話方塊。
  • 改進了 regions IntelliSense
  • XAML IntelliSense 中的程式碼片段
  • 在設計工具外以另一個視窗快顯 XAML 編輯器
  • 顯示參考組件的資源
  • 即時視覺化樹狀結構中的「只顯示我的 XAML」
  • 合併資源字典
  • 支援 XAML Islands
  • 編輯範本現在可與協力廠商控制項搭配運作。
  • C++ MSBuild 和 CMake 專案中的 Clang-Tidy 支援,適用於 Clang 和 MSVC。
  • AddressSanitizer 支援使用 MSVC on Windows 編譯的專案。
  • 支援將本機 Git 存放庫發佈至 GitHub
  • 將文件索引標籤變更為具有垂直文件索引標籤的垂直版面配置。
  • 此版本中的 .NET 生產力新增功能包括:可直接在錯誤清單中設定程式碼樣式規則的嚴重性層級;[尋找所有參考] 現在具有依類型和成員進行分組的選項;新增重構,可將區域函式設為靜態,再將函式外部所定義變數傳遞至函式的宣告與呼叫。
  • 使用新的可釘選屬性功能,快速自訂物件在偵錯工具視窗中的顯示方式。
  • 容器工具視窗新增檢查、停止、啟動和移除 Docker 容器和映射的功能
  • 藉由自動隱藏工具視窗來改善啟動效能的選項
  • 管理發佈相依性或使用已連線的服務時,自動偵測 SQL Server 和 Azure 儲存體連接字串
  • 新增使用 64 位元執行階段開發 Azure Functions 的支援。
  • 已新增對 .NET Core 3.0 應用程式發佈選項的支援:準備執行 (Crossgen)、連結和 SingleExe
  • 此版本中的 .NET 生產力新增項目包括能夠直接透過編輯器設定程式碼樣式規則的嚴重性層級、使用新的 [移至基底] 命令輕鬆地向上巡覽繼承鏈、為所有參數新增 Null 檢查,以及用於覆寫方法的 XML 文件。
  • 適用於 Xamarin.Forms 的 XAML 熱重新載入
  • Android 應用程式套件組合發行
  • AndroidX 移轉精靈
  • Android 版面配置 Linting

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

Visual Studio 現在支援「FIPS 合規性模式」

從 16.4 版開始,Visual Studio 2019 現在支援在開發適用於 Windows、Azure 和 .NET 之應用程式和解決方案時的「FIPS 140-2 合規性模式」。 在開發非 Microsoft 平台 (例如 Linux、iOS 或 Android) 的應用程式或解決方案時,這些平台不一定會使用 FIPS 140-2 核准的演算法。 隨附於 Visual Studio 或延伸模組中的協力廠商軟體,也可能不會使用 FIPS 140-2 核准的演算法。 此外,SharePoint 解決方案的開發不支援 FIPS 140-2 合規性模式。

若要為 Visual Studio 設定 FIPS 140-2 相容模式,請安裝 .NET Framework 4.8,然後啟用 Windows 群組原則設定:「系統加密:使用 FIPS 相容的演算法進行加密、雜湊和簽署。」

WPF/UWP 工具

建置 WPF/UWP 應用程式的客戶會在 Visual Studio XAML 工具中看到下列改進:

設計工具

  • XAML 設計工具縮放/定位現在預設為 [全部調整]:根據客戶的意見反應,我們重新評估了當您開啟 XAML 視窗/頁面/控制項/等項目時,所發生的預設 XAML 設計工具縮放行為。之前的情況是,系統會在 Visual Studio 工作階段間儲存每個檔案的縮放比例和位置,但當客戶過段時間再回到檔案時,這會造成混淆。 從這個版本開始,我們只會在使用中工作階段期間儲存縮放比例和位置,當 Visual Studio 重新啟動後,即會回到 [調整成畫面大小] 預設。
  • 建立資料繫結對話:Visual Studio 已為 WPF .NET Framework 開發人員提供 [資料繫結] 對話方塊,以滑鼠右鍵按一下 XAML 設計工具和屬性總管即可使用,而此對話方塊先前也可供 UWP 開發人員使用。 在此版本中,我們會再度為 UWP 開發人員提供這項體驗,並新增 WPF .NET Core 應用程式的支援。 這項功能仍在開發階段,未來將會持續改進,以恢復與 .NET Framework 對話方塊功能的功能同位。

XAML 編輯器

  • 改善 #regions IntelliSense:從 Visual Studio 2015 開始,WPF 與 UWP XAML 開發人員已可使用 #region 支援,最近也已可供 Xamarin.Forms 使用。 在此版本中,我們修正了 IntelliSense Bug,經過此次修正後,#regions 現在會在您開始鍵入 <! 時正確顯示。
  • XAML IntelliSense 中的程式碼片段:IntelliSense 已增強為支援顯示 XAML 程式碼片段,這同時適用於內建程式碼片段和您手動新增的所有自訂程式碼片段。 從這個版本開始,我們也會包含一些現成的 XAML 程式碼片段:#region、資料行定義、資料列定義、Setter 和標記。
  • 將 XAML 編輯器作為與設計工具不同的視窗快顯:您現在可以使用 [XAML] 索引標籤旁邊的新 [快顯 XAML] 按鈕,輕鬆地將 XAML 設計工具及其基礎 XAML 編輯器分割成不同的視窗。當您按一下時,[XAML 設計工具] 會將其附加的 XAML 索引標籤最小化,而且只會快顯開啟 XAML 編輯器檢視的新視窗。 您可以將這個新視窗移至 Visual Studio 中的任何顯示或索引標籤群組。 請注意,您仍然可以展開原始的 XAML 檢視,但相同檔案的所有 XAML 檢視無論如何都會即時保持同步。
Pop up XAML code window
快顯 XAML 程式碼視窗
  • 顯示參考組件的資源:XAML IntelliSense 已更新為支援從 WPF 架構和 WPF .NET Core 專案的參考組件 (當來源無法使用時) 顯示 XAML 資源。

XAML 偵錯工具

  • 即時視覺化樹狀結構中的 Just My XAML:「即時視覺化樹狀結構」是一項功能,當 UWP 和 WPF 開發人員在偵錯模式中執行應用程式時,可同時供他們使用,而且其也屬於與 XAML 熱重新載入相關的即時編輯工具。 此功能之前會顯示已附加執行中應用程式的完整即時視覺化樹狀結構,但並沒有篩選,無法只查看您在應用程式中撰寫的 XAML。 這使體驗非常紛亂,於是我們根據客戶的意見反應,新增了稱為「只顯示我的 XAML」的預設,這會限制樹狀結構只顯示您在應用程式中撰寫的控制項。 雖然這是新的預設值,但您仍然可以透過即時視覺化樹狀結構本身內含的按鈕或透過新設定 (可在 [選項] > [偵錯] > [一般] > [啟用 Just My XAML] 下找到),返回先前的行為
Show Just My XAML in Live Visual Tree
在即時視覺化樹狀結構中只顯示我的 XAML

資源與範本

  • 合併資源字典:您現在可以使用方案總管提供的新功能,輕鬆地將 UWP/WPF 專案內的現有資源字典與任何有效的 XAML 檔案合併。 只要在方案總管中開啟您要在其中新增合併陳述式的 XAML 檔案,然後找出並以滑鼠右鍵按一下您要合併的檔案,就大功告成了。 在操作功能表中,選取 [將資源字典合併到使用中視窗內] 選項,即會新增包含路徑的正確合併 XAML。
Merge Resource Dictionary
合併資源字典
  • 編輯範本現在可與第 3 方控制項中的控制項搭配使用: 即使控制項範本不是解決方案原始程式碼的一部分,您現在還是可以建立一份控制項範本。 經過此次變更,現在您可使用 [編輯範本] 功能,而且運作起來形同在您目前有原始程式碼的項目中一樣。 請注意,這項功能也同時適用於協力廠商控制項程式庫和您沒有原始程式碼的控制項程式庫。

XAML Islands:

  • 改善的 XAML Island 支援:我們已新增 Windows Forms 和 WPF .NET Core 3 應用程式的 XAML Islands 案例支援,可讓您更輕鬆地將 UWP XAML 控制項新增至這些應用程式。 透過這些改善,.NET Core 3 專案可以參考包含自訂 UWP XAML 控制項的 UWP 專案。 這些自訂控制項可供隨附於 Windows 社群工具組 v6 (Microsoft.Toolkit.Wpf.UI.XamlHost v6.0) 中的 WindowsXamlHost 控制項使用。 您也可以使用 Windows 應用程式套件專案,以為包含 Islands 的 .NET Core 3 產生 MSIX。 若要深入了解如何開始使用,請閱讀我們的文件

C++

  • 無論您是使用 Clang 或 MSVC 工具,程式碼分析現在都可針對 MSBuild 和 CMake 專案,以原生方式支援 Clang-Tidy。 clang-tidy 檢查可作為背景程式碼分析的一部分來執行、顯示為編輯器內的警告 (波浪線),以及顯示在錯誤清單中。
Clang-Tidy warnings in the Error List
錯誤清單中的 Clang-Tidy 警告
  • Visual Studio CMake 專案現在具有 [概觀] 頁面,可協助您開始進行跨平台開發。 這些頁面是動態的,可協助您連線至 Linux 系統,並將 Linux 或 WSL 組態新增至 CMake 專案。
CMake Overview Pages
CMake 概觀頁面
  • CMake 專案的啟動下拉式功能表現在會顯示您最近使用過的目標,並可加以篩選。
  • C++/CLI 現在支援在 Windows 上搭配 .NET Core 3.1 或更新版本使用 interop。
  • 您現在能為 Windows 上以 MSVC 編譯的專案啟用 ASan,以進行 C++ 程式碼的執行階段檢測,其可協助偵測記憶體錯誤。
  • MSVC 的 C++ 標準程式庫更新:
    • C++17:實作 to_chars() 一般精確度,完成 P0067R5 基礎字串轉換 (charconv)。 這會完成 C++17 標準中所有程式庫功能的實作。
    • C++20:實作 P1754R1 將概念重新命名為 standard_case。 若要包含最新 C++ 工作草稿的預覽功能,請使用編譯器旗標 /std:c++latest;您也可以透過 C++ 語言標準屬性,在 C/C++ > 語言專案屬性頁中設定旗標。
  • 名為 C++ Build Insights 的新工具集合現已推出。 如需詳細資訊,請參閱 C++ 小組部落格

發佈至 GitHub 支援

  • 屬於適用於 Visual Studio 之 GitHub 延伸模組的 [發佈至 GitHub] 功能,現在已包含在 Visual Studio 的 GitHub Essentials 中。
  • 您現在可以使用 [Team Explorer 同步處理] 頁面上的 [發佈至 GitHub] 按鈕,將本機 Git 存放庫發佈至 GitHub。

Visual Studio 中的垂直文件索引標籤

在編輯器左側或右側的垂直清單中管理文件索引標籤。

Manage your document tabs in a vertical list on either the left or right side of your editor
Visual Studio 中的垂直文件索引標籤

可釘選屬性偵錯工具

您現在可以使用可釘選屬性功能將屬性釘選到 [DataTips] 頂端或 [監看式]、[自動變數] 和 [區域變數] 視窗,來在偵錯階段快速識別及檢查物件。

Identify and inspect objects by pinning properties using the Pinnable Properties feature
Visual Studio 中的可釘選屬性

容器工具視窗

  • 您可以列出、檢查、停止、啟動和移除容器
  • 您可以檢視執行中容器的記錄和檔案內容,並將終端機視窗開啟至容器中
  • 您可以檢視、檢查並移除映像
You can list, inspect, stop, start, and remove containers through the containers tool window.
Visual Studio 中的容器工具視窗

自動隱藏工具視窗

啟用此預覽功能選項可讓您在開啟多個工具視窗的情況下,略過啟動 Visual Studio 所引起的啟動延遲。

.NET 生產力

  • 您現在可以直接透過錯誤清單來設定程式碼樣式規則的嚴重性層級。 將游標放在錯誤、警告或建議上。 按一下滑鼠右鍵並選取 [設定嚴重性]。 然後選取您想要為該規則設定的嚴重性層級。 這會以規則的新嚴重性更新現有的 EditorConfig。 這也適用於協力廠商分析器。
Set rule severity directly through the error list
直接透過錯誤清單設定規則嚴重性
  • [尋找所有參考] 現在可讓您依類型和成員進行分組。
Group by type and member in Find All References
[尋找所有參考] 中的 [依類型和成員進行分組]
  • 您現在可以將區域函式設為靜態,並將函式外部所定義變數傳遞至函式的宣告與呼叫。 將游標放在區域函式名稱上。 按下 (Ctrl+.),以觸發 [快速動作與重構] 功能表。 選取 [將區域函式設為 static]
Make local function static
將區域函式設為靜態
  • 您現在可以將變數明確傳遞至本機靜態函式。 將游標放在靜態區域函式的變數上。 按下 (Ctrl+.),以觸發 [快速動作與重構] 功能表。 選取 [在本機靜態函式中明確傳遞變數]
Pass a variable into a local static function
將變數傳遞至本機靜態函式

.NET 生產力

  • 您現在可以直接透過編輯器設定程式碼樣式規則的嚴重性層級。 如果使用者目前沒有 .editorconfig 檔案,系統就會為其產生一個檔案。 將您的資料指標放在錯誤、警告或建議與類型 (Ctrl+.) 上,以開啟[快速動作與重構] 功能表。 選取 [設定或隱藏問題]。 然後選取規則,並選擇您想要為該規則設定的嚴重性層級。 這會以規則的新嚴重性更新現有的 EditorConfig。 這也適用於協力廠商分析器。
Set rule severity directly through the editor
直接透過編輯器設定規則嚴重性
  • 您現在可以使用 [移至基底] 命令向上巡覽繼承鏈。 在您想要巡覽繼承階層的項目操作 (右鍵) 功能表上,會提供 [移至基底] 命令。 或者,您可以鍵入 (Alt+Home)。 如果有一個以上的結果,則會開啟工具視窗,其中包含您可以選擇要巡覽的所有結果。
Go To Base
移至基底
  • 您現在可以為所有參數新增 Null 檢查。 這會新增 if 陳述式,以檢查所有可為 Null 之非檢查參數的 Null 狀態。 將游標放在方法內的任何參數上。 按下 (Ctrl+.),以觸發 [快速動作與重構] 功能表。 選取 [為所有參數新增 Null 檢查] 的選項。
Add null checks for all parameters
為所有參數新增 Null 檢查
  • 沒有 XML 文件之方法現在可以從它所覆寫的方法自動繼承 XML 文件。 將游標放在會實作已記載介面方法的未記載方法上。 [快速諮詢] 會接著顯示介面方法中的 XML 文件。 您也可以使用 <inheritdoc> 標記,從基底類別和介面繼承 XML 註解。 文件範例
XML inherit documentation
XML 繼承文件

Xamarin

適用於 Xamarin.Forms 的 XAML 熱重新載入

適用於 Xamarin.Forms 的 XAML 熱重新載入可加速您的開發,讓您更輕鬆地在使用者介面上建置、實驗和逐一查看。 這樣一來,您就不用在每次調教 UI 時重建應用程式,UI 會立即顯示執行中應用程式的變更。

Android 應用程式套件組合發行

您現在可以在 Visual Studio 中發行 Android 應用程式時,建立 Android 應用程式套件組合。 應用程式套件組合會在從 Google Play 商店或各種 Android App Store 下載應用程式時,為使用者提供依其裝置規格最佳化的 APK。

Android App Bundle Publishing
Android 應用程式套件組合發行

AndroidX 移轉精靈

您現在可以使用 AndroidX 移轉精靈,將您現有的 Android 應用程式從 Android 支援程式庫轉換為 AndroidX。

AndroidX Migration Wizard
AndroidX 移轉精靈

Android 版面配置 Linting

當您在 Android 設計工具中編輯版面配置時,現在會為您提供一系列常見的問題。

Android Layout Linting
Android 版面配置 Linting

Visual Studio 2019 16.4 版中已修正的主要問題


已知問題

請前往以下連結,查看 Visual Studio 2019 16.4 版中的所有問題及可行的因應措施。

Visual Studio 2019 Known Issues

意見反應與建議

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


部落格

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


Visual Studio 2019 版本資訊歷程記錄

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


頁首