RCLogoVisual Studio 2019 16.7 版的版本資訊


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


注意

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



支援時間範圍

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

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

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

Visual Studio 2019 16.7 版

Visual Studio 2019 封存版本資訊

Visual Studio 部落格

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


Release Notes Icon Visual Studio 2019 16.7.28 版

2022 年 4 月 19 日發行

在此 Visual Studio 2019 16.7.28 版的發行版本中

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

Release Notes Icon Visual Studio 2019 16.7.27 版

2022 年 4 月 12 日發行

在此 Visual Studio 2019 16.7.27 版的發行版本中

資訊安全諮詢注意事項

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.7.26 版

2022 年 3 月 8 日發行

在此 Visual Studio 2019 16.7.26 版的發行版本中

資訊安全諮詢注意事項

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.7.25 版

2022 年 2 月 8 日發行

在此 Visual Studio 2019 16.7.25 版的發行版本中

資訊安全諮詢注意事項

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


Release Notes Icon Visual Studio 2019 16.7.24 版

2022 年 1 月 11 日發行

在此 Visual Studio 2019 16.7.24 版的發行版本中

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

開發人員社群的問題


Release Notes Icon Visual Studio 2019 16.7.23 版

2021 年 12 月 14 日發行

在此 Visual Studio 2019 16.7.23 版的發行版本中

  • 已將 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.7.22 版

2021 年 11 月 16 日發行

在此 Visual Studio 2019 16.7.22 版的發行版本中

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

Release Notes Icon Visual Studio 2019 16.7.21 版

2021 年 11 月 09 日發行

在此 Visual Studio 2019 16.7.21 版的發行版本中

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

資訊安全諮詢注意事項

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

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


Release Notes Icon Visual Studio 2019 16.7.20 版

2021 年 10 月 12 日發行

在此 Visual Studio 2019 16.7.20 版的發行版本中

資訊安全諮詢注意事項

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 拒絕服務弱點:Git 所使0用的 OpenSSL 程式庫中存在潛在的旗標略過。


Release Notes Icon Visual Studio 2019 16.7.19 版

2021 年 9 月 14 日發行

在此 Visual Studio 2019 16.7.19 版的發行版本中

資訊安全諮詢注意事項

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

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


Release Notes Icon Visual Studio 2019 16.7.18 版

2021 年 8 月 10 日發行

在此 Visual Studio 2019 16.7.18 版的發行版本中

  • 已修正影響更新命令命令列執行的問題。 如果更新第一次失敗,後續發行的 update 命令現在會導致更新從其在先前作業離開之處繼續進行。

資訊安全諮詢注意事項

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

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

CVE-2021-34532 ASP.NET Core 資訊洩漏弱點 如果無法剖析 JWT 權杖,則會將 JWT 權杖記錄下來,因此存在資訊洩漏弱點。


Release Notes Icon Visual Studio 2019 16.7.17 版

2021 年 7 月 13 日發行

在此 Visual Studio 2019 16.7.17 版的發行版本中

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

Release Notes Icon Visual Studio 2019 16.7.16 版

2021 年 6 月 8 日發行

在此 Visual Studio 2019 16.7.16 版的發行版本中

資訊安全諮詢注意事項

CVE-2021-31957 ASP.NET 拒絕服務弱點 當 ASP.NET Core 處理用戶端中斷連線時,存在拒絕服務弱點。


Release Notes Icon Visual Studio 2019 16.7.15 版

2021 年 5 月 11 日發行

在此 Visual Studio 2019 16.7.15 版的發行版本中

  • 已修正當系統管理員為部署更新而建立 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.7.14 版

2021 年 4 月 13 日發行

在此 Visual Studio 2019 16.7.14 版的發行版本中

  • 最佳化工具錯誤地移除使用中的程式碼
  • NuGet 會以一般輸出詳細程度還原套件時報告套件來源和套件內容雜湊
  • NuGet 會將套件來源儲存在套件的 .nupkg.metadata 檔案的全域套件資料夾中。 全域套件資料夾中的現有套件將不會取得這項額外的資訊。 您可以清除全域套件資料夾,以收集所有套件的套件來源資訊。

資訊安全諮詢注意事項

CVE-2021-27064 Visual Studio 安裝程式權限提高弱點 當 Visual Studio 安裝程式在提高權限的狀態下執行意見反應用戶端時,會存在遠端程式碼執行弱點。

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


Release Notes Icon Visual Studio 2019 16.7.13 版

2021 年 3 月 9 日發行

在此 Visual Studio 2019 16.7.13 版的發行版本中

資訊安全諮詢注意事項

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.7.12 版

2021 年 2 月 9 日發行

在此 Visual Studio 2019 16.7.12 版的發行版本中


Release Notes Icon Visual Studio 2019 16.7.11 版

2021 年 2 月 9 日發行

在此 Visual Studio 2019 16.7.11 版的發行版本中

Visual Studio 2019 16.7.6 版最佳化編譯程式中的錯誤 (bug)

資訊安全諮詢注意事項

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.7.10 版

發行於 2021 年 1 月 12 日

在此 Visual Studio 2019 16.7.10 版的發行版本中

資訊安全諮詢注意事項

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.7.9 版

發行於 2020 年 12 月 8 日

在此 Visual Studio 2019 16.7.9 版的發行版本中

資訊安全諮詢注意事項

CVE-2020-17156 Visual Studio 遠端程式碼執行弱點 Visual Studio 複製惡意存放庫時存在遠端程式碼執行弱點。


Release Notes Icon Visual Studio 2019 16.7.8 版

2020 年 11 月 10 日發行

在此 Visual Studio 2019 16.7.8 版的發行版本中

資訊安全諮詢注意事項

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



Release Notes Icon Visual Studio 2019 16.7.7 版

發行於 2020 年 10 月 27 日

在此版 Visual Studio 2019 16.7.7 版中


Release Notes Icon Visual Studio 2019 16.7.6 版

發行於 2020 年 10 月 13 日

在此版 Visual Studio 2019 16.7.6 版中


Release Notes Icon Visual Studio 2019 16.7.5 版

2020 年 9 月 29 日發行

在此 Visual Studio 2019 16.7.5 版中


Release Notes Icon Visual Studio 2019 16.7.4 版

2020 年 9 月 21 日發行

在此 Visual Studio 2019 16.7.4 版本中

  • 新增 Xcode 12.0 GM 支援。
  • 新增在 Info.plist 編輯器中將某個色彩集設定為輔色的支援。

Release Notes Icon Visual Studio 2019 版本 16.7.3

2020 年 9 月 8 日發行

在此 Visual Studio 2019 16.7.3 版本中

資訊安全諮詢注意事項

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。

此版本修正的其他問題

  • 已修正使用模式比對的 switch 陳述式或 switch 運算式會發生編譯器損毀的問題。
  • 已透過終止測試回合來還原單元測試的 [停止偵錯 (Shift+F5)] 工作流程。
  • 防止在 WinForms .NET Core 設計工具包含未儲存的變更時,切換專案設定會導致 VS 損毀的問題。
  • 若已從 VS 安裝程式中移除,則不受支援的 .NET Core 版本將不會再於修復或升級期間重新安裝。
  • 修正無法於 [在檔案中尋找] 內正確搜尋外部相依性的問題。
  • 在 [方案總管] 操作功能表的 Git 子功能表中重新引入 [認可…] 按鈕。
  • 已修正造成 TFVC 簽入提示標籤遭到隱藏的 Bug。
  • 修正搭配多個目標 Framework 在 SDK 樣式 csproj 中使用 WinForm 設計工具時造成損毀的問題。
  • 已修正 <d:Style.DataContext> 於其中報告無效標記錯誤的問題。

Visual Studio 2019 版本 16.7.3 中已修正的開發人員社群主要問題


Release Notes Icon Visual Studio 2019 16.7.2 版

2020 年 8 月 18 日發行

在此 Visual Studio 2019 16.7.2 版本中

Visual Studio 2019 16.7.2 版中修正的開發人員社群主要問題


Release Notes Icon Visual Studio 2019 16.7.1 版

發行於 2020 年 8 月 11 日

在 Visual Studio 2019 16.7.1 此版本中

Visual Studio 2019 16.7.1 版中修正的開發人員社群主要問題


Release Notes Icon Visual Studio 2019 16.7.0 版

發行於 2020 年 8 月 5 日

在 Visual Studio 2019 16.7.0 此版本中

C++

  • 遠端 C++ 支援現在支援更廣泛的 Linux distro 與 Shell,包括 sh、csh、bash、tsch、ksh、zsh 與 dash。 您可透過 ConnectionManager.exe 來修改新的 "shell" 屬性,以覆寫遠端連線的 shell 選擇。 這項支援已使用以遠端 Linux 系統或 WSL 為目標的 MSBuild 型 Linux 專案與 CMake 專案來進行測試。
  • 您現在可使用 Ninja (非常快速地評估累加建置的建置系統),以改善 MSBuild 型 Linux 專案的累加建置時間。 您可透過在 [一般] 屬性頁中,將 [啟用累加建置] 設定為 [使用 Ninja],以選擇使用這項功能。 Ninja (Ninja 式建置) 必須安裝在遠端 Linux 系統或 WSL 上。
  • 實作了新的 C++20 標準程式庫功能。 如需詳細清單,請參閱 GitHub 上的 STL 變更記錄
  • 您現可在連線管理員中編輯和設定預設的遠端 SSH 連線。 這表示您可以編輯現有的遠端連線 (例如其 IP 位址變更時),並在 CMakeSettings.json 和 launch.vs.json 中設定要使用的預設連線。 遠端 SSH 連線可讓您直接在 Visual Studio 中,建置及偵錯位於遠端 Linux 系統的 C++ 專案。
Edit remote connections in the Connection Manager
在連線管理員中編輯遠端連線
  • 在 Visual Studio 中增強了 Windows 上的 Clang (clang-cl) IntelliSense 支援。 Clang 的 include 路徑現在包含 clang 程式庫,我們改善了使用 std 程式庫時的編輯器內波浪線顯示,並且在 clang 模式中新增了 C++2a 的支援。
  • 您現在可以嘗試將程式碼錯誤加上底線,並在 C++ 專案中查看更多建議的快速修正。 若要啟用此功能,請在 [工具] > [選項] > [文字編輯器] > [C/C++] > [實驗性]> 底下,將 [停用實驗程式碼 Linter] 設定為 False。 前往 C++ 小組部落格深入了解。
IntelliSense code linter
IntelliSense 程式碼 Linter
  • 我們已新增四個新的程式碼分析規則,以將其他安全性功能納入 C++:C26817C26818C26819C26820
  • 我們已針對在具有 gdbserver 的遠端系統上對 CMake 專案進行偵錯新增第一級支援。
  • 在 Visual Studio 中使用適用於 C++ 之 AddressSanitizer 的實驗性實作 (現已可供 x64 原生專案使用),輕鬆地找出記憶體損毀錯誤。 我們現在也支援使用偵錯執行階段 (/MTd、/MDd、/LDd)。
  • IntelliSense 現已提供概念、指定初始設定式,以及其他數個 C++20 功能的基本支援。
  • .ixx 與 .cppm 檔案現已識別為 C++,而且語法螢光筆與 IntelliSense 也會將其當成 C++ 處理。

以動態方式定義播放清單

您現在可以根據 [專案]、[類別] 或 [命名空間] 以動態方式定義播放清單。 這表示您可以設定播放清單以包含特定專案/類別/命名空間中的所有內容;任何新增至該群組的新測試都會自動包含到您的播放清單中!

  • 在 [測試總管] 中以滑鼠右鍵按一下專案、命名空間或類別群組來建立播放清單。
Test Explorer: Create a playlist
測試總管:建立播放清單
  • 按一下工具列中的 [編輯] 按鈕來編輯要包含在播放清單中的群組。 核取方塊將會隨即出現。 視需要編輯群組。
Test Explorer: Edit a playlist
測試總管:編輯播放清單
  • 這些播放清單不會成為靜態的測試清單,而是會根據規則以動態方式更新。 如果您想要深入了解產生您動態播放清單的規則,請使用 [儲存] 按鈕將動態清單檔案儲存到磁碟,並在所產生的 xml 中檢視規則。
PlayList file dynamic rule set
PlayList 檔案動態規則集
  • 您可以繼續包含/排除個別的測試,而播放清單將能夠更新其動態規則,或切換回以靜態清單的形式追蹤測試。 您也可以透過直接編輯播放清單 xml 檔案來使用特性以定義動態群組。

Git 生產力

開啟 [工具] | [選項] | [環境] 中的 [New Git user experience] \(新增 Git 使用者體驗\)'' 預覽功能來體驗此功能。

  • 從任何資料夾或全新資料夾開始建立新的 Git 存放庫
  • 在開始新的複製作業之前,先儲存並關閉已開啟的資料夾或解決方案
  • 在認可文字方塊中清楚檢視認可或隱藏訊息的錯誤
  • 在 Git 存放庫視窗的樹狀檢視中,檢視及管理 Git 分支
  • 在 Git 存放庫視窗中,於每個分支的歷程記錄圖之間切換並與其互動
  • 在 Git 存放庫視窗中檢視傳入與傳出認可
  • 內含最新功能詳細資料的 Git 生產力小組部落格 (英文)
Manage branches and view history in a focused Git Repository window
在焦點 Git 存放庫視窗中管理分支及檢視歷程記錄

透過聚焦於 Git 的合併編輯器,使用以下方式解決合併衝突:

  • 包含合併衝突的檔案資訊列會提示您開啟合併編輯器
  • 合併編輯器中的標題和說明提供更多資訊,也較不雜亂
  • 衝突中的差異會與對應的程式碼對齊,顯示文字層級的差異,並會在差異只在於空白字元時,顯示可見的空白字元。
  • 檔案層級新增/新增衝突的雙向合併
  • 只要按一下,就能以其中一邊為主,解決所有衝突
  • 有切換按鈕可以只專注於衝突,而忽略不衝突的差異
New Merge Editor Experience
使用合併編輯器解決合併衝突

JavaScript/TypeScript

  • 已更新 [完成] 和 [快速諮詢] 的實作,以為 LiveShare 案例提供更佳支援。

Local Process with Kubernetes

Local Process with Kubernetes
Local Process with Kubernetes

Local Process with Kubernetes 讓您能在其餘應用程式或服務都連線到 Kubernetes 叢集時,在開發工作站上撰寫、測試及偵錯您的 .NET 程式碼。 將開發工作站連線到叢集,您就不需要在開發電腦上手動執行和設定相依服務。 您在本機執行的微服務程式碼可以使用來自叢集的環境變數、連接字串和磁碟區。 不需要增加額外的資產,例如 Dockerfile 或 Kubernetes 資訊清單。 您只要像平常一樣執行、偵錯和測試 .NET 程式碼即可。

若要啟用 Local Process with Kubernetes,請前往 [工具] > [選項] > [環境] > [預覽功能],然後選取 [啟用 Kubernetes 服務的本地偵錯]。

Enable Preview Features
啟用預覽功能

若是 .NET 主控台應用程式,則需要額外的步驟。 請安裝 "Microsoft.VisualStudio.Azure.Kubernetes.Tools.Targets" Nuget 套件。

.NET 生產力

當隱藏項目運算子存在但沒有效果時,現在即會有警告與程式碼修正。 亦可使用建議正確否定運算式的第二個程式碼。 將游標放在隱藏項目運算子上。 按下 (Ctrl+ + .),以觸發 [快速動作與重構] 功能表。 接著,選取下列其中一項:

  • 若要完全移除運算子,請選取 [移除運算子 (保留語意)]
Code fix to remove suppression operator
程式碼修正以移除隱藏項目運算子
  • 若要否定該運算式,請選取 [否定運算式 (變更語意)]
Code fix to negate expression
程式碼修正以否定運算式
  • 若其可在專案中使用,則也可使用新的 C# 9 not 模式:
Code fix to negate expression using not
使用 not 的程式碼修正來否定運算式

現在當在類型中產生函式時可產生屬性。 將游標放在執行個體上。 按下 (Ctrl+ + .),以觸發 [快速動作與重構] 功能表。 選取 [在 <QualifiedName> 中產生建構函式 (使用屬性)]

Generate properties when generating constructor
當產生函式時產生屬性
  • 快速諮詢現在會一併顯示診斷識別碼與說明連結,讓您輕鬆導覽至我們的文件,深入了解程式碼中的警告和錯誤。
Quick Info Diagnostic ID and Help Link
快速諮詢診斷識別碼和說明連結
  • 現在已有快速動作可將偵錯工具顯示屬性新增至類別。 這可讓您將偵錯工具內的屬性以程式設計方式釘選到您的程式碼中。 將游標放在類別名稱上。 按下 (Ctrl++.),以觸發 [快速動作與重構] 功能表。 選取 [新增 ‘DebuggerDisplay` 屬性]。 這會將偵錯工具 Display 屬性新增到類別的頂端,並產生會傳回 ToString() 的 Auto 方法,您可以加以編輯以傳回您想要在偵錯工具中釘選的屬性值。
Add Debugger Display Attribute
新增 Debugger Display 屬性
  • 現已有適用於對相同變數之意外指派或比較的程式碼修正。 將游標放在警告上。 按下 (Ctrl++.),以觸發 [快速動作與重構] 功能表。 如需意外指派,選取 [指派至 <QualifiedName.value>]。 如需意外比較,選取 [與 <QualifiedName.value> 比較]
Accidental Assignments Code Fix
意外指派程式碼修正
Accidental Comparisons Code Fix
意外比較程式碼修正
  • 您現在可以針對實作 IComparable 的類型產生比較運算子。 將游標放在類別內或 IComparable 上。 按下 (Ctrl++.),以觸發 [快速動作與重構] 功能表。 選取 [產生比較運算子]。 系統將會為您產生具有比較運算子的未定案區段。
Generate Comparison Operators
產生比較運算子
  • 您現在可以在針對結構產生 .Equals 時產生 IEquatable 運算子。 我們已經針對適用於實值類型的 [產生 Equals 與 GetHashCode] 具有重構。 現在針對結構,我們將會為您自動新增 IEquatable,以及等於和不等於運算子。 將游標放在結構內。 按下 (Ctrl++.),以觸發 [快速動作與重構] 功能表。 選取 [產生 Equals(object)]
Generate IEquatable Operators
產生 IEquatable 運算子
  • 您現在可以針對所有未使用的建構函式參數建立及指派屬性或欄位。 我們已經有可讓您針對個別參數執行此動作的快速動作,但現在您可以同時對所有未使用的參數這麼做。 將游標放在任何剩餘的參數上。 按下 (Ctrl++.),以觸發 [快速動作與重構] 功能表。 若要建立並初始化屬性,請選取 [建立其餘項目並將其指派為屬性]。 若要建立並初始化欄位,請選取 [建立其餘項目並將其指派為欄位]
Create and Assign Remaining Fields
建立並指派其餘欄位
Create and Assign Remaining Properties
建立並指派其餘屬性
  • 在 DateTime 和 TimeSpan 字串常值中,現在已有 IntelliSense 完成。 將游標放在 DateTime 或 TimeSpan 字串常值內,然後按 (Ctrl+空格鍵)。 您接著將會看到完成選項,以及每個字元所代表之意思的說明。 系統會同時提供日期時間格式和範例。
IntelliSense Completion in DateTime and TimeSpan
DateTime 和 TimeSpan 字串常值中的 IntelliSense 完成
  • 您現在可以在 [變更簽章] 對話方塊內新增參數。 將游標放在方法的簽章內。 按下 (Ctrl++.),以觸發 [快速動作與重構] 功能表。 選取 [變更簽章]。 下列對話方塊將會隨即開啟,且您現在可以在其中選取 [新增] 以新增參數。 在您選取 [新增] 之後,新的 [加入參數] 對話方塊將會隨即開啟。 [加入參數] 對話方塊可讓您新增類型名稱和參數名稱。 您可以選擇使參數為必要或選擇性且具預設值。 您可以接著在呼叫位置新增值並為該值選擇具名引數,或是引進 TODO 變數。 TODO 變數會將 TODO 放在您的程式碼中,讓您可以瀏覽每個錯誤並個別瀏覽每個呼叫位置,然後決定要傳遞的內容。 針對選擇性參數,您可以選擇完全省略呼叫位置。
Change Signature Dialog
[變更簽章] 對話方塊
Add Parameter Dialog
[加入參數] 對話方塊
  • 分析器建立者現在可以在使用 NuGet 來傳送其分析器時,使用 CompletionProviders 來進行 IntelliSense 完成。 之前,程式庫建立者必須建立個別的 VSIX,因為 CompletionProviders 只能在 VSIX 中使用。 現在,程式庫建立者可以在其分析器所在的 NuGet 套件中實作 IntelliSense 完成,且不需要個別執行此動作。 在 NuGet 套件中實作的完成提供者也能夠為個別專案提供特定的建議,且能在支援該功能的每個 IDE 中自動運作。

Razor

透過選取 [啟用實驗性 Razor 編輯器] 預覽功能,試用新實驗性語言伺服器通訊協定 (LSP) 提供技術支援的 Razor 編輯器和所有 Razor 檔案 (.cshtml/.razor)。

測試總管

已將 [執行/偵錯檢視中的所有測試] 新增到 [測試總管]。 這些命令會取代出現在 [測試總管] 中 [執行所有測試] 和 [偵錯所有測試] 命令的所有位置。 這項變更釐清這些命令會接受 [測試總管] 的篩選,如此只會執行出現在視窗中的測試。 這包含資料行篩選和搜尋方塊篩選。

Test Explorer Run/Debug All Tests in View commands
測試總管執行/偵錯檢視中的所有測試命令

[全域執行/偵錯所有項目] 命令現在只會顯示在最上層的測試功能表中。 其不會再包含在任何測試視窗檢視的 [測試總管] 工具列或操作功能表中。 從 [測試總管] 觸發時,[分析所有測試的程式碼涵蓋範圍] 現在也會套用到測試視窗檢視。

快速鍵:

  • Ctrl R、A - 執行所有測試 - 全域命令一律會執行所有測試
  • Ctrl R、V - 執行所有檢視中的測試 - 只有在測試視窗 (測試總管、播放清單、即時單元測試視窗) 為作用中視窗時,這個項目才是有效的命令
  • Ctrl R、Ctrl A - 偵錯所有測試 - 全域命令一律會偵錯所有測試
  • Ctrl R、Ctrl V - 偵錯檢視中的所有測試 - 只有在測試視窗 (測試總管、播放清單、即時單元測試視窗) 為作用中視窗時,這個項目才是有效的命令

偵錯工具

透過原生指標來檢視受控 COM 物件

此功能自動解碼原生指標參考的受控 COM 物件,讓您完整檢查 [本機] 視窗中的值。 您可以在此處的 Visual Studio 部落格中找到其他詳細資料。

分析工具

新的 .NET 效能計數器工具

.NET Performance Counters Tool
.NET 效能計數器工具

使用 .NET 效能計數器工具,直接從 Visual Studio 分析工具中視覺化 Dotnet 計數器。 若要試用工具,請前往 [偵錯] -> [效能分析工具] -> 勾選 [.NET 效能計數器工具]

Xamarin

  • 已針對使用 Android 配置檔案的使用者所遇到最常見問題類型,引入了程式碼修正程式。
  • Xamarin.Forms 範本選擇體驗現在有更具說明性的新外觀,且彈出式視窗與索引標籤式範本現在會使用 Shell。 請在這裡閱讀 Shell 的相關資訊。 若基於某些原因而不想使用 Shell,請使用空白範本。
New Xamarin.Forms template selection experience
選擇 Xamarin.Forms 範本

XAML 工具 (WPF、UWP 與 Xamarin.Forms)

XAML 熱重新載入:

  • 應用程式內工具列改善:我們已進一步精簡應用程式內工具列體驗,這是 WPF 與 UWP 的 XAML 熱重新載入工具工作流程一部分。 變更會包含較短的工具列,使其不再涵蓋執行中的應用程式,而摺疊機制的變更會在按一下時,先摺疊 XAML 熱重新載入文字,然後在第二次按一下時完全摺疊該橫條圖。

XAML 設計工具:

  • 擴充 WPF 與 UWP 的設計階段資料支援:在此版本中,我們將介紹 WPF .NET Core 和 UWP 開發人員的新設計階段資料功能。 此新功能會透過 d: 前置詞,延伸可存取設計階段屬性目前的清單。 Xamarin.Forms 開發人員會很熟悉此功能,因為其同樣可以使用 “d:” 前置詞來表示屬性,因此種表示法只在設計階段呈現,且永不編譯至執行的應用程式中,所以用於設計階段 UI 驗證非常安全。 在此版本中,我們支援 WPF 與 UWP 全部的現成控制項,並計畫在未來版本中支援協力廠商與自訂控制項。
  • XAML 設計工具重新整理按鈕:我們已在 XAML 設計工具中新增重新整理按鈕,您可在接近縮放層級指示器的左下角圖示區域中找到這個新圖示。 此重新整理動作會執行關閉設計工具檢視的對等重新設定,並在發生這種稀有情況時重新開啟,以解決轉譯問題。 此功能適用於 WPF .NET Core 與 UWP 開發人員。

XAML 程式碼編輯器:

  • 色彩視覺化檢視:我們已進一步精簡在 WPF .NET Core、WPF .NET Framework 與 Xamarin.Froms 專案的 XAML 程式碼編輯器中新的色彩視覺化檢視。 在此版本中,我們新增支持來自資源的色彩視覺化,先前的預覽版本並不支援此功能。
Inline Color Previews in XAML Code Editor
XAML 程式碼編輯器中的內嵌色彩預覽

顯示 NuGet 套件中的工具箱項目,但不含套件參考

許多控制項程式庫的作者都希望能在工具箱中顯示控制項,即使目前的專案尚未參考該程式庫也一樣,因為這有助於提高發現能力。 WPF .NET Framework SDK 過去使用登錄項目完成這項作業,但 .NET Core 不支援這種方式。 對於 WPF .NET Core,工具箱現在可以填入 VisualStudioToolsManifest.xml 檔案中的控制項,這些檔案位在 NuGet 後援資料夾的 WPF .NET Core NuGet 套件中。 如需詳細資訊,請參閱 XAML Designer Extensibility GitHub 存放庫中的文件。

Windows Forms

適用於 .NET Core 的 Windows Form 設計工具

適用於 .NET Core 專案的 Windows Form 設計工具現已可用。 若要在 Visual Studio 中啟用該設計工具,請移至 [工具] > [選項] > [環境] > [預覽功能],然後選取 [使用適用於 .NET Core 應用程式的預覽 Windows Form 設計工具] 選項。

在此版本中,現已支援下列控制項及其他改善:

  • UserControl 和自訂控制項基礎結構
  • TableLayoutPanel
  • 適用於第三方控制項的基礎
  • 適用於資料繫結支援的基礎
  • 設計工具與 TableLayoutPanel 之互動的改善

Bug 修正

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

  • 已修正 WMI 提供者元件安裝失敗的問題。
  • 修正了使用者無法透過按一下列底部左側按鈕來查看測試回合進度的問題。
  • 改善了探索可用 Visual Studio 程式碼空間計費方案的效能。
  • 建立 Visual Studio 程式碼空間時,我們會將預設的暫停時間從 30 分鐘變更為 3 小時。
  • 修正 Git [變更] 視窗通知使用者其有傳入/傳出認可,但事實上沒有的 Bug。
  • 改善了診斷工具與效能分析工具的穩定性。
  • 解決了 Azure Sphere Visual Studio 延伸模組因為次要版本不相符而無法自動更新的問題。 修正之後,當 VSIX 自動更新程式執行時,Azure Sphere 就能自動更新。

開發人員社群的問題


已知問題

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

意見反應與建議

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


部落格

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


Visual Studio 2019 版本資訊歷程記錄

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


頁首