Visual Studio Icon Visual Studio 2019 16.0 版的版本資訊Visual Studio 2019 version 16.0 Release Notes



開發人員社群 | 系統需求 | 相容性 | 可散發程式碼 | 授權條款 | 部落格 | 最新版本的已知問題Developer Community | System Requirements | Compatibility | Distributable Code | License Terms | Blogs | Latest Release Known Issues


按一下按鈕以下載最新版的 Visual Studio 2019。Click a button to download the latest version of Visual Studio 2019. 如需安裝和更新 Visual Studio 2019 的指示,請參閱將 Visual Studio 2019 更新至最新版本For instructions on installing and updating Visual Studio 2019, see the Update Visual Studio 2019 to the most recent release. 此外,請參閱如何離線安裝上的指示。Also, see instructions on how to install offline.

Community Download Button Professional Download Button Enterprise Download Button


Visual Studio 2019 16.0 版的新功能What's New in Visual Studio 2019 version 16.0

支援時間範圍Support Timeframe

Visual Studio 2019 16.0 版現已不支援。Visual Studio 2019 version 16.0 is now out of support.

支援 Visual Studio 2019 16.0 版的企業和專業使用者,且已于年1月2021之前收到安全性弱點的修正。Enterprise and Professional users of Visual Studio 2019 version 16.0 were supported and did receive fixes to security vulnerabilities through January 2021. 此時間範圍是由 2019 年 12 月的下列事實決定:Visual Studio 2019 16.4 版已指定為 Visual Studio 2019 產品的最終服務基準。This timeframe was determined by the fact that in December 2019, Visual Studio 2019 version 16.4 was designated as the next servicing baseline to the Visual Studio 2019 product.   如需 Visual Studio 所支援基準的詳細資訊,請參閱 Visual Studio 2019 的支援原則For more information about Visual Studio supported baselines, please review the support policy for Visual Studio 2019.

Visual Studio 2019 16.0 版Visual Studio 2019 version 16.0 Releases

Visual Studio 2019 部落格Visual Studio 2019 Blog

Visual Studio 2019 部落格 是由 Visual Studio 工程小組發行的官方產品見解。The Visual Studio 2019 Blog is the official source of product insight from the Visual Studio Engineering Team. 您可以在該部落格找到 Visual Studio 2019 版的相關深入資訊。You can find in-depth information about the Visual Studio 2019 releases there.


Release Notes Icon Visual Studio 2019 16.0.22 版Visual Studio 2019 version 16.0.22

發行於 2020 年 1 月 12 日released January 12, 2020

16.0.22 中修正的問題Issues fixed in 16.0.22

16.0.22 資訊安全諮詢注意事項Security Advisory Notice for 16.0.22

CVE-2021-1651 / CVE-2021-1680診斷中樞標準收集器服務權限提高弱點 CVE-2021-1651 / CVE-2021-1680 Diagnostics Hub Standard Collector Service Elevation of Privilege Vulnerability

當診斷中樞標準收集器未正確處理資料作業時,即會存在權限提升弱點。An elevation of privilege vulnerability exists when the Diagnostics Hub Standard Collector incorrectly handles data operations.

CVE-2020-26870 Visual Studio 安裝程式遠端程式碼執行弱點 CVE-2020-26870 Visual Studio Installer Remote Code Execution Vulnerability

當 Visual Studio 安裝程式嘗試顯示惡意 Markdown 時,即會存在遠端程式碼執行弱點。A remote code execution vulnerability exists when the Visual Studio Installer attempts to show malicious markdown.


Release Notes Icon Visual Studio 2019 16.0.21 版Visual Studio 2019 version 16.0.21

發行於 2020 年 12 月 8 日released December 08, 2020

16.0.21 中修正的問題Issue fixed in 16.0.21

16.0.21 資訊安全諮詢注意事項Security Advisory Notice for 16.0.21

CVE-2020-17156 Visual Studio 遠端程式碼執行弱點 CVE-2020-17156 Visual Studio Remote Code Execution Vulnerability

當 Visual Studio 複製惡意存放庫時,就會存在遠端程式碼執行弱點。A remote code execution vulnerability exists when Visual Studio clones a malicious repository.


Release Notes Icon Visual Studio 2019 16.0.20 版Visual Studio 2019 version 16.0.20

2020 年 11 月 10 日發行released November 10, 2020

16.0.20 中修正的問題Issue fixed in 16.0.20

16.0.20 資訊安全諮詢注意事項Security Advisory Notice for 16.0.20

CVE-2020-17100 Visual Studio 竄改弱點 CVE-2020-17100 Visual Studio Tampering Vulnerability

當適用於 Visual Studio 的 Python 工具建立 [python27] 資料夾時,會存在竄改弱點。A tampering vulnerability exists when the Python Tools for Visual Studio creates the python27 folder. 攻擊者若成功探索此弱點,即可在權限提升的內容中執行處理序。An attacker who successfully exploited this vulnerability could run processes in an elevated context.


Release Notes Icon Visual Studio 2019 16.0.19 版Visual Studio 2019 version 16.0.19 New Release icon

發行於 2020 年 10 月 13 日released October 13, 2020

在此版 16.0.19 中In this Release of 16.0.19

  • .NET Code SDK 2.1.616 已新增至 Visual Studio 2019。.NET Code SDK 2.1.616 added to Visual Studio 2019.

Release Notes Icon Visual Studio 2019 版本 16.0.18Visual Studio 2019 version 16.0.18

2020 年 9 月 8 日發行released September 8, 2020

16.0.18 中修正的問題Issues fixed in 16.0.18

  • 若已從 Visual Stuidio 安裝程式中移除,則不受支援的 .NET Core 版本將不會再於修復或升級期間重新安裝。Out of support versions of .NET Core will no longer be reinstalled during a repair or upgrade if they were removed outside of VS setup.

16.0.18 資訊安全諮詢注意事項Security Advisory Notice for 16.0.18

CVE-2020-1130 診斷中樞標準收集器權限提升弱點 CVE-2020-1130 Diagnostics Hub Standard Collector Elevation of Privilege Vulnerability

當診斷中樞標準收集器未正確處理資料作業時,即會存在權限提升弱點。An elevation of privilege vulnerability exists when the Diagnostics Hub Standard Collector improperly handles data operations. 攻擊者若成功探索此弱點,即可在權限提升的內容中執行處理序。An attacker who successfully exploited this vulnerability could run processes in an elevated context.

CVE-2020-1133 診斷中樞標準收集器服務權限提升弱點 CVE-2020-1133 Diagnostics Hub Standard Collector Elevation of Privilege Vulnerability

當診斷中樞標準收集器未正確處理檔案作業時,即會存在權限提升弱點。An elevation of privilege vulnerability exists when the Diagnostics Hub Standard Collector improperly handles file operations. 攻擊者若成功探索此弱點,即可在權限提升的內容中執行處理序。An attacker who successfully exploited this vulnerability could run processes in an elevated context.

CVE-2020-16856 Visual Studio 遠端程式碼執行弱點 CVE-2020-16856 Visual Studio Remote Code Execution Vulnerability

當 Visual Studio 未正確處理記憶體中的物件時,即會存在遠端程式碼執行弱點。A remote code execution vulnerability exists in Visual Studio when it improperly handles objects in memory. 成功惡意探索弱點的攻擊者可以在目前使用者的內容中執行任意程式碼。An attacker who successfully exploited the vulnerability could run arbitrary code in the context of the current user.

CVE-2020-16874 Visual Studio 遠端程式碼執行弱點 CVE-2020-16874 Visual Studio Remote Code Execution Vulnerability

當 Visual Studio 未正確處理記憶體中的物件時,即會存在遠端程式碼執行弱點。A remote code execution vulnerability exists in Visual Studio when it improperly handles objects in memory. 成功惡意探索弱點的攻擊者可以在目前使用者的內容中執行任意程式碼。An attacker who successfully exploited the vulnerability could run arbitrary code in the context of the current user.

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

Microsoft ASP.NET Core 剖析已編碼 Cookie 名稱的方式有安全性功能略過弱點。A security feature bypass vulnerability exists in the way Microsoft ASP.NET Core parses encoded cookie names. ASP.NET Core Cookie 剖析器會將整個 Cookie 字串解碼,這可能會讓惡意攻擊者設定以百分比將名稱編碼的第二個 Cookie。The ASP.NET Core cookie parser decodes entire cookie strings which could allow a malicious attacker to set a second cookie with the name being percent encoded.


Release Notes Icon Visual Studio 2019 16.0.17 版Visual Studio 2019 version 16.0.17

發行於 2020 年 8 月 11 日released August 11, 2020

16.0.17 版中修正的問題Issue fixed in 16.0.17

16.0.17 版資訊安全諮詢注意事項Security Advisory Notice for 16.0.17

CVE-2020-1597 ASP.NET Core 拒絕服務弱點 CVE-2020-1597 ASP.NET Core Denial of Service Vulnerability

當 ASP.NET Core 不正確地處理 Web 要求時,就存在拒絕服務弱點。A denial of service vulnerability exists when ASP.NET Core improperly handles web requests. 成功惡意探索此弱點的攻擊者可能會導致 ASP.NET Core Web 應用程式面臨阻斷服務攻擊。An attacker who successfully exploited this vulnerability could cause a denial of service against an ASP.NET Core web application. 不需要驗證即可從遠端惡意探索此弱點。The vulnerability can be exploited remotely, without authentication.


Release Notes Icon Visual Studio 2019 16.0.16 版Visual Studio 2019 version 16.0.16 New Release icon

發行於 2020 年 7 月 14 日released July 14, 2020

16.0.16 中修正的問題Issues fixed in 16.0.16

16.0.16 版資訊安全諮詢注意事項Security Advisory Notice for 16.0.16

CVE-2020-1393 診斷中樞標準收集器服務權限弱點提高 CVE-2020-1393 Diagnostics Hub Standard Collector Service Elevation of Privilege Vulnerability

當 Windows 診斷中樞標準收集器無法適當處理輸入時,即會造成權限弱點提高,因而導致不安全的程式庫載入行為。An elevation of privilege vulnerability exists when the Windows Diagnostics Hub Standard Collector Service fails to properly sanitize input, leading to an unsecure library-loading behavior.

CVE-2020-1416 Visual Studio 權限弱點提高 CVE-2020-1416 Visual Studio Elevation of Privilege Vulnerability

當 Visual Studio 載入軟體相依性時,即會造成權限弱點提高。An elevation of privilege vulnerability exists in Visual Studio when it loads software dependencies.

CVE-2020-1147 .NET Core 拒絕服務弱點 CVE-2020-1147 .NET Core Denial of Service Vulnerability

遠端未經驗證攻擊者可藉由向 ASP.NET Core 應用程式或其他剖析特定 XML 類型的應用程式發出特製要求,以惡意探索此弱點。A remote unauthenticated attacker could exploit this vulnerability by issuing specially crafted requests to an ASP.NET Core application, or other application that parses certain types of XML. 此安全性更新會限制 XML 承載中允許存在的類型,藉以解決此弱點。The security update addresses the vulnerability by restricting the types that are allowed to be present in the XML payload.


Release Notes Icon Visual Studio 2019 16.0.15 版Visual Studio 2019 version 16.0.15 New Release icon

2020 年 6 月 9 日發行released June 09, 2020

16.0.15 中修正的問題Issues fixed in 16.0.15

16.0.15 版資訊安全諮詢注意事項Security Advisory Notice for 16.0.15

CVE-2020-1108 / CVE-2020-1108.NET Core 阻斷服務弱點 CVE-2020-1108 / CVE-2020-1108.NET Core Denial of Service Vulnerability

為了全面解決 CVE-2020-1108 的問題,Microsoft 發行了 .NET Core 2.1 和 .NET Core 3.1 的更新。To comprehensively address CVE-2020-1108, Microsoft has released updates for .NET Core 2.1 and .NET Core 3.1. 使用這些 .NET Core 版本中任何一個版本的客戶應該安裝最新版的 .NET Core。Customers who use any of these versions of .NET Core should install the latest version of .NET Core. 如需最新版本號碼和更新 .NET Core 的指示,請參閱版本資訊See the Release Notes for the latest version numbers and instructions for updating .NET Core.

CVE-2020-1202 / CVE-2020-1203診斷中樞標準收集器服務權限提高弱點 CVE-2020-1202 / CVE-2020-1203 Diagnostics Hub Standard Collector Service Elevation of Privilege Vulnerability

當診斷中樞標準收集器或 Visual Studio 標準收集器無法正確處理記憶體中的物件時,就會有權限提高弱點。An elevation of privilege vulnerability exists when the Diagnostics Hub Standard Collector or the Visual Studio Standard Collector fails to properly handle objects in memory.

CVE-2020-1293 / CVE-2020-1278 / CVE-2020-1257診斷中樞標準收集器服務權限提高弱點 CVE-2020-1293 / CVE-2020-1278 / CVE-2020-1257 Diagnostics Hub Standard Collector Service Elevation of Privilege Vulnerability

當診斷中樞標準收集器服務處理檔案作業的方式不正確時,就會有權限提高弱點。An elevation of privilege vulnerability exists when the Diagnostics Hub Standard Collector Service improperly handles file operations


Release Notes Icon Visual Studio 2019 16.0.14 版Visual Studio 2019 version 16.0.14

2020 年 5 月 12 日發行released May 12, 2020

16.0.14 中修正的問題Issues fixed in 16.0.14

  • 新增了一項變更,其讓企業 IT 系統管理員和部署工程師能夠設定 Microsoft Update 用戶端與 SCCM 之類的工具,以判斷 Microsoft Update 目錄和 WSUS 上所裝載 VS2019 16.0 更新的適用性。Added a change that enables Enterprise IT administrators and deployment engineers to configure tools like Microsoft Update client & SCCM to determine applicability of VS2019 16.0 updates hosted on Microsoft Update Catalog & WSUS.

16.0.14 版資訊安全諮詢注意事項Security Advisory Notice for 16.0.14

CVE-2020-1108 .NET Core 阻斷服務弱點 CVE-2020-1108 .NET Core Denial of Service Vulnerability

遠端未經驗證的攻擊者可藉由向 .NET Core 應用程式發出特製要求來惡意探索此弱點。A remote unauthenticated attacker could exploit this vulnerability by issuing specially crafted requests to the .NET Core application. 這項安全性更新會更正 .NET Core Web 應用程式處理 Web 要求的方式來解決弱點。The security update addresses the vulnerability by correcting how the .NET Core web application handles web requests.


Release Notes Icon Visual Studio 2019 16.0.13 版Visual Studio 2019 version 16.0.13

2020 年 4 月 14 日發行released April 14, 2020

16.0.13 版資訊安全諮詢注意事項Security Advisory Notice for 16.0.13

CVE-2020-0899 Microsoft Visual Studio 權限提高弱點 CVE-2020-0899 Microsoft Visual Studio Elevation of Privilege Vulnerability

當 Microsoft Visual Studio 更新程式服務未適當處理檔案權限時,就會存在權限提高弱點。An elevation of privilege vulnerability exists when Microsoft Visual Studio updater service improperly handles file permissions. 成功惡意探索此弱點的攻擊者可能會覆寫本機系統安全性內容中任意檔案內容。An attacker who successfully exploited this vulnerability could overwrite arbitrary file content in the security context of the local system.

CVE-2020-0900 Visual Studio 延伸模組安裝程式服務權限提高弱點 CVE-2020-0900 Visual Studio Extension Installer Service Elevation of Privilege Vulnerability

當 Visual Studio 延伸模組安裝程式服務未適當處理檔案作業時,就會存在權限提高弱點。An elevation of privilege vulnerability exists when the Visual Studio Extension Installer Service improperly handles file operations. 成功惡意探索此弱點的攻擊者可能會在具有權限提高其任意位置上刪除檔案。An attacker who successfully exploited the vulnerability could delete files in arbitrary locations with elevated permissions.

CVE-2020-5260 由於 URL 驗證不足導致適用於 Visual Studio 的 Git 存在認證洩漏弱點 CVE-2020-5260 Git for Visual Studio Credential Leak Vulnerability due to insufficient validation on URLs

當特別製作的 URL 經過剖析並傳送給認證協助程式時,就會存在認證洩漏弱點。A credential leak vulnerability exists when specially crafted URLs are parsed and sent to credential helpers. 這可能會導致將認證傳送至錯誤的主機。This can lead to credentials being sent to the wrong host.


Release Notes Icon Visual Studio 2019 16.0.12 版Visual Studio 2019 version 16.0.12

2020 年 3 月 10 日發行released March 10, 2020

16.0.12 中修正的問題Issues fixed in 16.0.12

資訊安全諮詢注意事項Security Advisory Notice

CVE-2020-0793 & CVE-2020-0810診斷中樞標準收集器服務的提高弱點權限 CVE-2020-0793 & CVE-2020-0810 Diagnostics Hub Standard Collector Service Elevation of Privilege Vulnerability

當診斷中樞標準收集器不當處理檔案作業,或 Windows 診斷中樞標準收集器服務無法正確消毒輸入時,會暴露提高權限弱點。An elevation of privilege vulnerability exists when the Diagnostics Hub Standard Collector improperly handles file operations, or the Windows Diagnostics Hub Standard Collector Service fails to properly sanitize input.

CVE-2020-0884建立 Outlook Web 增益集時的詐騙弱點CVE-2020-0884 Spoofing vulnerability when creating Outlook Web -Add-in

若在啟用多重要素驗證的情況下建立 Outlook Web 增益集,會暴露詐騙弱點A spoofing vulnerability exists when creating an Outlook Web-Addin if multi-factor authentication is enabled

CVE-2020-0789Visual Studio 延伸模組安裝程式服務拒絕服務弱點CVE-2020-0789 Visual Studio Extension Installer Service Denial of Service Vulnerability

當 Visual Studio 建伸模組安裝程式服務不當處理永久連結時,將會暴露拒絕服務弱點。A denial of service vulnerability exists when the Visual Studio Extension Installer Service improperly handles hard links. 若攻擊者惡意探索此弱點成功,可能導致目標系統停止回應。An attacker who successfully exploited the vulnerability could cause a target system to stop responding.


Release Notes Icon Visual Studio 2019 16.0.11 版Visual Studio 2019 version 16.0.11

2020 年 1 月 14 日發行released January 14, 2020

資訊安全諮詢注意事項Security Advisory Notice

CVE-2020-0602 ASP.NET Core 拒絕服務弱點CVE-2020-0602 ASP.NET Core Denial of Service Vulnerability

遠端未經驗證的攻擊者可以藉由向 ASP.NET Core 應用程式發出特製要求來惡意探索此弱點。A remote unauthenticated attacker could exploit this vulnerability by issuing specially crafted requests to the ASP.NET Core application. 這項安全性更新會更正 ASP.NET Core Web 應用程式處理 Web 要求的方式來解決弱點。The security update addresses the vulnerability by correcting how the ASP.NET Core web application handles web requests.

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

遠端未經驗證的攻擊者可以藉由向 ASP.NET Core 應用程式發出特製要求來惡意探索此弱點。A remote unauthenticated attacker could exploit this vulnerability by issuing specially crafted requests to the ASP.NET Core application. 這項安全性更新會更正 ASP.NET Core Web 應用程式在記憶體中的處理方式來解決弱點。The security update addresses the vulnerability by correcting how the ASP.NET Core web application handles in memory.


Release Notes Icon Visual Studio 2019 16.0.10 版Visual Studio 2019 version 16.0.10

發行於 2019 年 12 月 10 日released December 10, 2019

16.0.10 中修正的問題Issues fixed in 16.0.10

資訊安全諮詢注意事項Security Advisory Notice

CVE-2019-1349 由於對子模組名稱的限制過於寬鬆,而產生的 Git for Visual Studio 遠端執行弱點CVE-2019-1349 Git for Visual Studio Remote Excecution Vulnerability due to too lax restrictions on submodule names

當 Git 與同層級子模組目錄的子模組名稱衝突時,就會產生遠端程式碼執行弱點。A remote code execution vulnerability exists when Git runs into collisions of submodule names for directories of sibling submodules. 惡意探索此弱點成功的攻擊者,可以遠端方式在目標電腦上執行程式碼。An attacker who successfully exploited this vulnerability could remote execute code on the target machine. 此安全性更新會採用新版本的 Git for Windows 來解決此弱點,而子模組複製品的目錄必須為空白。The security update addresses the vulnerability by taking a new version of Git for Windows which requires the directory for the submodules’ clone to be empty.

CVE-2019-1350 由於命令列引數的引用不正確,而產生的 Git for Visual Studio 遠端執行弱點CVE-2019-1350 Git for Visual Studio Remote Excecution Vulnerability due to incorrect quoting of command-line arguments

當 Git 在遞迴複製期間,搭配 SSH URL 使用特定引用方式來解譯命令列引數時,會產生遠端程式碼執行弱點。A remote code execution vulnerability exists when Git interprets command-line arguments with certain quoting during a recursive clone in conjunction with SSH URLs. 惡意探索此弱點成功的攻擊者,可以遠端方式在目標電腦上執行程式碼。An attacker who successfully exploited this vulnerability could remote execute code on the target machine. 此安全性更新會採用可修正此問題的新版 Git for Windows 來解決此弱點。The security update addresses the vulnerability by taking a new version of Git for Windows which fixes the issue.

CVE-2019-1351 由於在複製期間使用了非字母的磁碟機名稱,而產生的 Git for Visual Studio 任意檔案覆寫弱點CVE-2019-1351 Git for Visual Studio Arbitrary File Overwrite Vulnerability due to usage of non-letter drive names during clone

當非字母的磁碟機名稱在 git clone 中略過安全性檢查時,Git 中會產生任意檔案覆寫弱點。An arbitrary file overwrite vulnerability exists in Git when non-letter drive names bypass safety checks in git clone. 惡意探索此弱點成功的攻擊者,可在目標電腦上寫入任意檔案。An attacker who successfully exploited this vulnerability could write to arbitrary files on the target machine. 此安全性更新會採用可修正此問題的新版 Git for Windows 來解決此弱點。The security update addresses the vulnerability by taking a new version of Git for Windows which fixes the issue.

CVE-2019-1352 由於未察覺 NTFS 替代資料流,而產生的 Git for Visual Studio 遠端執行弱點CVE-2019-1352 Git for Visual Studio Remote Excecution Vulnerability due to unawareness of NTFS Alternate Data Streams

透過 NTFS 替代資料流來複製及寫入 .git/ 目錄時,在 Git 中會產生遠端程式碼執行弱點。A remote code execution vulnerability exists in Git when cloning and writing to .git/ directory via NTFS alternate data streams. 惡意探索此弱點成功的攻擊者,可以遠端方式在目標電腦上執行程式碼。An attacker who successfully exploited this vulnerability could remote execute code on the target machine. 此安全性更新會採用可察覺 NTFS 替代資料流的新版 Git for Windows 來解決此弱點。The security update addresses the vulnerability by taking a new version of Git for Windows which has been made aware of NTFS alternate data streams.

CVE-2019-1354 由於未拒絕寫出包含反斜線的已追蹤檔案,而產生的 Git for Visual Studio 任意檔案覆寫弱點CVE-2019-1354 Git for Visual Studio Arbitrary File Overwrite Vulnerability due to not refusing to write out tracked files containing backslashes

當具有反斜線和惡意符號連結的樹狀目錄項目可能會中斷工作樹狀結構時,在 Git 中會產生任意檔案覆寫弱點。An arbitrary file overwrite vulnerability exists in Git when tree entries with backslashes and malicious symlinks could break out of the work tree. 惡意探索此弱點成功的攻擊者,可在目標電腦上寫入任意檔案。An attacker who successfully exploited this vulnerability could write to arbitrary files on the target machine. 此安全性更新會採用不允許這種反斜線使用方式的新版 Git for Windows 來解決此弱點。The security update addresses the vulnerability by taking a new version of Git for Windows which does not allow this usage of backslashes.

CVE-2019-1387 由於對遞迴複製品子模組名稱的驗證過於寬鬆,而產生的 Git for Visual Studio 遠端執行弱點CVE-2019-1387 Git for Visual Studio Remote Execution Vulnerability due to too lax validation of submodule names in recursive clones

使用子模組以遞迴方式複製時,在 Git 中會產生遠端程式碼執行弱點。A remote code execution vulnerability exists in Git when cloning recursively with submodules. 惡意探索此弱點成功的攻擊者,可以遠端方式在目標電腦上執行程式碼。An attacker who successfully exploited this vulnerability could remote execute code on the target machine. 此安全性更新會採用可加強子模組名稱驗證的新版 Git for Windows 來解決此弱點。The security update addresses the vulnerability by taking a new version of Git for Windows which tightens validation of submodule names.

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

當連至 Live Share 工作階段的來賓,重新導向至由工作階段主持人指定的任意 URL 時,在 Visual Studio Live Share 延伸模組中偵測到了詐騙漏洞。A spoofing vulnerability was detected in the Visual Studio Live Share extension, when a guest connected to a Live Share session was redirected to an arbitrary URL specified by the session host. 攻擊者可成功惡意探索此弱點,並可在未經明確同意的情況下,讓來賓電腦開啟瀏覽器並瀏覽至惡意 URL。An attacked would have been able to successfully exploit this vulnerability and cause the guest's computer to open a browser and navigate to a malicious URL without explicit consent. 這是 Live Share「共用伺服器」功能的一部分,會在作用中的 Live Share 工作階段期間允許自動連接埠轉送。This was part of the "Shared Server" feature of Live Share that allowed auto port-forwarding during an active Live Share session. 最新的更新,會在瀏覽由主持人指定的 URL 之前,先提示 Live Share 來賓予以同意,以解決此弱點。The latest update addresses this vulnerability by promopting the Live Share guest from consent prior to browsing the host-specified URL.


Release Notes Icon Visual Studio 2019 16.0.9 版Visual Studio 2019 version 16.0.9

發行於 2019 年 10 月 15 日released October 15, 2019

資訊安全諮詢注意事項Security Advisory Notice

CVE-2019-1425 NPM 套件權限提高弱點 (2019 年 11 月 12 日發佈)CVE-2019-1425 NPM Package Elevation of Privilege Vulnerability (published November 12, 2019)

當 Visual Studio 在解壓縮封存檔案時無法正確驗證永久連結,就會存在權限提高弱點。An elevation of privilege vulnerability exists when Visual Studio fails to properly validate hardlinks when extracting archived files. 這些弱點是由 Visual Studio 使用的套件所導致,如下列兩個 NPM 公告所述:npmjs.com/advisories/803npmjs.com/advisories/886The vulnerabilities were introduced by NPM packages used by Visual Studio as described in the following two NPM advisories: npmjs.com/advisories/803 and npmjs.com/advisories/886. 這些 NPM 套件的更新版本已包含在這版 Visual Studio 中。The updated versions of these NPM packages were included in this version of Visual Studio.


Release Notes Icon Visual Studio 2019 16.0.8 版Visual Studio 2019 version 16.0.8

發行於 2019 年 9 月 10 日released September 10, 2019

Visual Studio 2019 16.0.8 版中已修正的問題Issues fixed in Visual Studio 2019 version 16.0.8

資訊安全諮詢注意事項Security Advisory Notice

CVE-2019-1232 診斷中樞標準收集器服務權限提高弱點CVE-2019-1232 Diagnostics Hub Standard Collector Service Elevation of Privilege Vulnerability

當診斷中樞標準收集器服務不正確地模擬特定檔案作業時,就存在權限提高弱點。An elevation of privilege vulnerability exists when the Diagnostics Hub Standard Collector Service improperly impersonates certain file operations. 成功探索此弱點的攻擊者可以取得提高的權限。An attacker who successfully exploited this vulnerability could gain elevated privileges. 缺乏易受攻擊系統特殊存取權限的攻擊者可能會惡意探索這項弱點。An attacker with unprivileged access to a vulnerable system could exploit this vulnerability. 這項安全性更新會確保診斷中樞標準收集器服務正確地模擬檔案作業,以解決弱點。The security update addresses the vulnerability by ensuring the Diagnostics Hub Standard Collector Service properly impersonates file operations.


Release Notes Icon Visual Studio 2019 16.0.7 版Visual Studio 2019 version 16.0.7

發行於 2019 年 8 月 13 日released August 13, 2019

Visual Studio 2019 16.0.7 版中已修正的問題Issues fixed in Visual Studio 2019 version 16.0.7

資訊安全諮詢注意事項Security Advisory Notice

CVE-2019-1211 適用於 Visual Studio 的 Git 的權限提高弱點 (英文)CVE-2019-1211 Git for Visual Studio Elevation of Privilege Vulnerability

在 Git 中,如果 Visual Studio 不正確地剖析設定檔,就會有權限提高弱點存在。An elevation of privilege vulnerability exists in Git for Visual Studio when it improperly parses configuration files. 成功惡意探索弱點的攻擊者,可以在另一個本機使用者的內容中執行程式碼。An attacker who successfully exploited the vulnerability could execute code in the context of another local user. 為利用此弱點,已通過驗證的攻擊者在完整安裝應用程式之前,必須先修改系統上的 Git 設定檔。To exploit the vulnerability, an authenticated attacker would need to modify Git configuration files on a system prior to a full installation of the application. 然後,攻擊者必須說服系統上的另一個使用者執行特定的 Git 命令。The attacker would then need to convince another user on the system to execute specific Git commands. 此更新會藉由變更編輯設定檔所需的權限來解決此問題。The update addresses the issue by changing the permissions required to edit configuration files.

**CVE-2019-1301:.NET Core 中的拒絕服務攻擊弱點**CVE-2019-1301: Denial of Service Vulnerability in .NET Core

當 .NET Core 不正確地處理 Web 要求時,就存在拒絕服務攻擊弱點。A denial of service vulnerability exists when .NET Core improperly handles web requests. 成功惡意探索此弱點的攻擊者可能會導致 .NET Core Web 應用程式面臨拒絕服務攻擊。An attacker who successfully exploited this vulnerability could cause a denial of service against a .NET Core web application. 不需要驗證即可從遠端惡意探索此弱點。The vulnerability can be exploited remotely, without authentication.

這項更新會更正 .NET Core Web 應用程式處理 Web 要求的方式,以解決弱點。The update addresses the vulnerability by correcting how the .NET Core web application handles web requests.


Release Notes Icon Visual Studio 2019 16.0.6 版Visual Studio 2019 version 16.0.6

發行於 2019 年 7 月 9 日released July 9, 2019

Visual Studio 2019 16.0.6 版本中已修正的問題Issues fixed in Visual Studio 2019 version 16.0.6

  • 已修正在 Windows 10 1903 版上執行或已安裝 .NET 4.8 版系統上的朗讀程式支援。Fixed narrator support on systems running on Windows 10 version 1903 or with .NET 4.8 installed.

資訊安全諮詢注意事項Security Advisory Notice

CVE-2019-1075 ASP.NET Core 詐騙弱點CVE-2019-1075 ASP.NET Core Spoofing Vulnerability

.NET Core 更新已在今天發行,並包含在此 Visual Studio 更新中。.NET Core updates have released today and are included in this Visual Studio update. 此版本解決安全性和其他重要問題。This release addresses security and other important issues. 您可以在 .NET Core 版本資訊中查看詳細資料。Details can be found in the .NET Core release notes.

CVE-2019-1077 Visual Studio 延伸模組自動更新弱點CVE-2019-1077 Visual Studio Extension Auto Update Vulnerability

當 Visual Studio 延伸模組自動更新程序不當處理某些檔案作業時,會引發權限提高弱點。An elevation of privilege vulnerability exists when the Visual Studio Extension auto-update process improperly performs certain file operations. 惡意攻擊此弱點成功的攻擊者,將能刪除任意位置上的檔案。An attacker who successfully exploited this vulnerability could delete files in arbitrary locations. 若要探索此弱點,攻擊者需要易受攻擊系統的無特殊權限存取權。To exploit this vulnerability, an attacker would require unprivileged access to a vulnerable system. 此安全性更新藉由保護 Visual Studio 延伸模組自動更新執行檔案作業的位置來解決此弱點。The security update addresses the vulnerability by securing locations the Visual Studio Extension auto-update performs file operations in.

CVE-2019-1113 WorkflowDesigner XOML 還原序列化允許程式碼執行CVE-2019-1113 WorkflowDesigner XOML deserialization allows code execution

參考特定類型的 XOML 檔案可能會導致在 Visual Studio 中開啟 XOML 檔案時執行隨機程式碼。A XOML file referencing certain types could cause random code to be executed when the XOML file is opened in Visual Studio. 對於在 XOML 檔案中允許使用的類型,現在有所限制。There is now a restriction on what types are allowed to be used in XOML files. 如果開啟包含新未授權類型的 XOML 檔案,則會顯示訊息說明該類型未經授權。If a XOML file containing one of the newly unauthorized types is opened, a message is displayed explaining that the type is unauthorized.

如需詳細資訊,請參閱 https://support.microsoft.com/en-us/help/4512190/remote-code-execution-vulnerability-if-types-are-specified-in-xomlFor further information, please refer to https://support.microsoft.com/en-us/help/4512190/remote-code-execution-vulnerability-if-types-are-specified-in-xoml.


Release Notes Icon Visual Studio 2019 16.0.5 版Visual Studio 2019 version 16.0.5

2019 年 6 月 11 日發行released June 11, 2019

Visual Studio 2019 16.0.5 版本中已修正的問題Issues fixed in Visual Studio 2019 version 16.0.5


Release Notes Icon Visual Studio 2019 16.0.4 版Visual Studio 2019 version 16.0.4

2019 年 5 月 14 日發行released May 14, 2019

在 Visual Studio 2019 16.0.4 版中已修正的問題Issues fixed in Visual Studio 2019 version 16.0.4

資訊安全諮詢注意事項Security Advisory Notice

CVE-2019-0727 診斷中樞標準收集器服務權限提高弱點CVE-2019-0727 Diagnostics Hub Standard Collector Service Elevation of Privilege Vulnerability

當診斷中樞標準收集器服務不當地處理某些檔案作業時,會引發權限提高弱點。An elevation of privilege vulnerability exists when the Diagnostics Hub Standard Collector Service improperly performs certain file operations. 惡意攻擊此弱點成功的攻擊者,將能刪除任意位置上的檔案。An attacker who successfully exploited this vulnerability could delete files in arbitrary locations. 若要探索此弱點,攻擊者需要易受攻擊系統的無特殊權限存取權。To exploit this vulnerability, an attacker would require unprivileged access to a vulnerable system. 此安全性更新藉由保護診斷中樞標準收集器執行檔案作業的所在位置來解決此弱點。The security update addresses the vulnerability by securing locations the Diagnostics Hub Standard Collector performs file operations in.


Release Notes Icon Visual Studio 2019 16.0.3 版Visual Studio 2019 version 16.0.3

發行於 2019 年 4 月 30 日released April 30, 2019

Visual Studio 2019 16.0.3 版的新功能What's New in Visual Studio 2019 version 16.0.3

  • 適用於 Kubernetes 的 Visual Studio Tools 現在支援最新的 Azure Dev Spaces。Visual Studio Tools for Kubernetes now supports the latest Azure Dev Spaces.

Visual Studio 2019 16.0.3 版中已修正的問題Issues fixed in Visual Studio 2019 version 16.0.3


Release Notes Icon Visual Studio 2019 16.0.2 版Visual Studio 2019 version 16.0.2

發行於 2019 年 4 月 18 日released April 18, 2019

Visual Studio 2019 16.0.2 版中已修正的問題Issues fixed in Visual Studio 2019 version 16.0.2


Release Notes Icon Visual Studio 2019 16.0.1 版Visual Studio 2019 version 16.0.1

發行於 2019 年 4 月 9 日released April 09, 2019

Visual Studio 2019 16.0.1 版中已修正的問題Issues fixed in Visual Studio 2019 version 16.0.1


Release Notes Icon Visual Studio 2019Visual Studio 2019

發行於 2019 年 4 月 2 日released April 02, 2019

Visual Studio 2019 的新功能摘要Summary of What's New in Visual Studio 2019

安裝Install

IDEIDE

  • 使用 Visual Studio Live Share (預設會安裝) 與其他人共同作業。Collaborate with others using Visual Studio Live Share, which is installed by default. C++、VB.NET 的其他語言支援,而 Razor 為訪客提供解決方案檢視與原始程式碼控制差異共用。Additional language support for C++, VB.NET, and Razor gives guests a solution view and sharing of source control diffs.
  • 開啟您最近使用的程式碼,或從其中一個最常用的流程開始,例如複製、開啟或透過新的啟動視窗建立專案。Open code you recently worked on or start from one of the most commonly used flows like clone, open, or create a project through the new start window.
  • 建立新專案,新專案具有改良的搜尋體驗,而且您可以使用依熱門程度排序的範本清單來篩選。Create new projects with an improved search experience and filters using the new list of templates sorted by popularity.
  • 提供更多的垂直程式碼空間,而且我們透過一組新的殼層視覺化變更提供現代化的外觀與操作方式。Have more vertical room for your code and a modernized look and feel through a set of new visual changes in the shell.
  • 檢視更清晰的 IDE 版本,不論您的顯示器設定和/或縮放比例為何,因為我們已改良對個別監視器感知的支援。View a sharper version of your IDE regardless of your display configuration and/or scaling, as we have improved support for per monitor awareness.
  • 使用 Visual Studio 中改良的搜尋功能來尋找功能表、命令、選項與可安裝的元件。Use an improved search capability in Visual Studio for menus, commands, options, and installable components.
  • 使用文件指示器快速了解您程式碼檔案的「健康情況」。Quickly understand your code file's 'health' with a document indicator. 透過從指示器執行的單鍵程式碼清除功能來執行及設定。Run and configure through a one-click code cleanup from the indicator.
  • 使用 [選項] 對話方塊中的新 [預覽功能] 頁面輕鬆管理您已選擇加入的預覽功能Easily manage the preview features you are opted in to with a new Preview Features page in the Options dialog.
  • 建立新專案時,有以標籤為基礎的搜尋功能改進,還有易於存取的 [最近使用的專案範本] 清單可以使用。Create new projects with improvements in tag-based search and an easily accessible "Recent project templates" list.
  • 直接從 Visual Studio 搜尋建立新項目,並以改良的關聯性更快找到結果。Create new items directly from Visual Studio Search and find results faster with improved relevance.
  • 透過新的通知體驗持續掌握重要資訊,例如 Visual Studio Live Share 要求。Stay informed of important information, such as Visual Studio Live Share requests, with a new notifications experience.
  • 將一組程式碼清理修正程式儲存成一個設定檔,即可輕鬆選取您要在程式碼清理期間執行的修正程式。Save a collection of code cleanup fixers as a profile to easily select the fixers you want run during code cleanup.
  • 觸發新的 .NET 重構和程式碼修正Trigger new .NET refactoring and code fixes.
  • 使用第一級專案檔讓設定 .NET Core 專案變得更輕鬆。Configure .NET Core projects more easily with first-class project files.
  • [延伸模組和更新] 對話方塊中查看有 [預覽]、[付費] 和 [試用] 標籤的延伸模組狀態。See the status of your extensions with Preview, Paid, and Trial tags in the Extensions and Updates dialog.
  • 檢查及設定您想要使用的預覽功能,因為這個 Preview 已重設預設。Check and configure which Preview features you want active since the defaults have been reset in this Preview.
  • 排除某些已在這個版本中標示為已淘汰的測試視窗 API。Keep your extensions up-to-date by excluding certain Test Window APIs that have been marked as deprecated in this release.
  • 透過開始視窗登入、瀏覽,以及按一下複製或從 Azure DevOps 連線至您託管的存放庫。Sign in, browse, and one-click clone or connect to your hosted repositories from Azure DevOps through the start window.
  • 安裝其他原始檔控制主機的延伸模組,來檢視您和自己組織擁有的存放庫。Install extensions for other source control hosts to view repositories owned by you and your organization.
  • 體驗改良的藍色佈景主題,該主題透過降低亮度、提高整體對比度和解決其他可用性問題,來因應意見反應。Experience an improved Blue theme experience that addresses feedback by dialing down the luminosity, improving overall contrast and addressing other usability issues.
  • 利用 dotnet 格式全域工具從命令列套用程式碼樣式喜好設定。Apply code style preferences from the command-line with the dotnet format global tool.
  • MSBuild 與 Visual Studio 現在預設以 .NET Framework 4.7.2 為目標。MSBuild and Visual Studio now target .NET Framework 4.7.2 by default.
  • 我們已從伺服器總管移除與 Azure App Service 相關的功能;您可在 Cloud Explorer 取得同等功能。We have removed Azure App Service-related features from Server Explorer; equivalent functionality is instead available in Cloud Explorer.

效能Performance

一般偵錯和診斷General Debugging and Diagnostics

  • 在偵錯時搜尋 [監看]、[自動] 與 [區域] 視窗中的關鍵字,以改進您尋找物件或值的能力。Search keywords within the Watch, Autos, and Locals windows while debugging to improve your ability to find objects or values.
  • 檢查資料時,在 [監看]、[自動] 與 [區域] 視窗中檢視格式指定名稱的下拉式清單View a dropdown of format specifiers in the Watch, Autos, and Locals windows when inspecting data.
  • 使用自訂視覺化檢視,它現在與 .NET Core 相容。Use a custom visualizer, now compatible with .NET Core.
  • 使用大量模組與 PDB 針對超大型應用程式進行偵錯Debug very large applications with large numbers of modules and PDBs.
  • 使用自訂引數啟動 Google Chrome,全程在 Visual Studio IDE 中對 JavaScript 應用程式進行偵錯。Launch Google Chrome with custom arguments and debug your JavaScript applications all within the Visual Studio IDE.
  • 在效能分析工具中,對 CPU 和 DotNet 物件配置工具使用最忙碌路徑反白顯示Use Hot Path Highlighting for CPU and DotNet Object Allocation tools in the Performance Profiler.
  • 使用資料中斷點,在特定物件的屬性值於 .NET Core 3.0+ 應用程式中變更時中斷。這原本是 C++ 專屬的功能。Break when a specific object's property value changes in .NET Core 3.0+ applications using data breakpoints, a feature that was originally exclusive to C++.
  • 推出 Preview 1 後,我們已為 Auto、Local 和 Watch 視窗換上了更簡單的介面。Since Preview 1, we have updated the UI for searching in the Autos, Locals, and Watch windows with a simpler interface. 「進行更深入的搜尋」功能已變更為下拉式清單,讓您可快速為起始和後續搜尋選取深度。The Search Deeper function has been changed to a dropdown so you can quickly select how deep you want your initial and subsequent searches to be.

原始程式碼控制與 Team ExplorerSource Control and Team Explorer

  • 暫時存放變更,以便您可以使用 Team Explorer 的 [Git 工具] Git 隱藏支援處理另一個工作。Temporarily store changes so you can work on another task by using Team explorer's Git tools support for Git stash.
  • 查看 Visual Studio Market Place 上可用的選擇性延伸模組Visual Studio 的提取要求,它將提取要求檢閱整合到 Visual Studio 中。Check out the optional extension available on the Visual Studio Market Place, Pull Requests for Visual Studio, that integrates Pull Request reviews into Visual Studio.
  • 使用新的 Azure DevOps 工作項目體驗,它著重在開發人員工作流程,包括使用者特定工作項目檢視、從工作項目建立分支、使用 #提及方式搜尋工作項目,以及直接編輯。Use the new Azure DevOps work item experience that focuses on developer workflows, including user-specific work item views, creating a branch from a work item, searching for work items with #mentions, and inline editing.

擴充性Extensibility

  • 使用 NuGet 套件 Microsoft.VisualStudio.SDK中的單一整合 Visual Studio SDK。Use a single, unified Visual Studio SDK in the NuGet package Microsoft.VisualStudio.SDK.
  • 利用我們對 VSIX 專案 的更新立即包含 AsyncPackage。Take advantage of our update to the VSIX Project to now include an AsyncPackage.
  • 利用我們新增的全新 空白 VSIX 專案 來進行實驗。Experiment with a new Empty VSIX Project template that we have added.
  • [延伸模組和更新] 對話方塊現在會指出延伸模組為免費、付費還是試用。Know if an extension is Free, Paid, or Trial, as it is now indicated inside the Extensions and Updates dialog.

程式語言:Programming Languages

C#C#

體驗 C# 編譯器現在支援的 8.0 語言功能預覽,包括:Experience a preview of the 8.0 language features that the C# compiler now supports, including:

  • 可為 Null 的參考型別 (英文):當功能為開啟時 (例如,使用 #nullable enable 或在專案層級使用 <NullableContextOptions>enable</NullableContextOptions>),如果標註 ?,則參考型別會視為可為 Null,否則視為不可為 Null。Nullable reference types: When the feature is turned on (for example, with #nullable enable or at the project-level with <NullableContextOptions>enable</NullableContextOptions>), reference types are treated as nullable if annotated with ?, and as non-nullable otherwise. 編譯器接著會分析 Null 值的流向,並警告可能不安全的使用方式。The compiler then analyzes where null values flow and warns about likely unsafe usages.
  • switch 運算式 (英文):在運算式內容中提供類似 switch 的語意。switch expressions: Offers switch-like semantics in an expression context.
  • 遞迴模式比對 (英文):新模式允許測試欄位/屬性和位置元素 (來自 Tuple 或解構)。Recursive pattern matching: New patterns allow testing fields/properties and positional elements (from tuples or deconstruction).
  • 支援 RangeIndex 型別在 CoreFX 中用於切割,包括範圍的 x..y 常值語法。Support for Range and Index types being used in CoreFX for slicing, including the x..y literal syntax for ranges.
  • IAsyncEnumerable<T> 呈現的非同步資料流可以使用 await foreach 來非同步地列舉,且可以使用 async IAsyncEnumerable<T> 列舉程式方法來產生。Asynchronous streams represented by IAsyncEnumerable<T> can be enumerated asynchronously with await foreach and can be produced with async IAsyncEnumerable<T> iterator methods.
  • using 宣告:在目前區塊結尾處置,而不會增加巢狀層級。using declarations: Dispose at the end of the current block, without increasing the level of nesting. ref 結構可以藉由實作公用 Dispose() 方法來處置。ref structs can be disposed by implementing a public Dispose() method.
  • static 區域函式:標示 static 的區域函式無法參考 this 或封入函式中的變數。static local functions: Local functions marked with static cannot reference this or variables in the enclosing functions.
  • 區域函式和 Lambda 現在可以宣告遮蔽封入函式變數名稱的參數和區域變數。Local functions and lambdas can now declare parameters and locals that shadow names of variables of the enclosing functions.
  • Null 聯合指派x ??= y; 只會在 xnull 時,將 y 指派給 xNull-coalescing assignment: x ??= y; only assigns y to x if x was null.

在 Mads 的 C# 8.0 概觀 (英文) 中取得更多資訊。Find out more in Mads' overview of C# 8.0.

如需更多詳細資料,請參閱 C# 語言功能狀態 (英文) 和重大變更 (英文)。See the C# language feature status and breaking changes for more details.

此外,根據預設您可以在 Visual Studio 中使用更多新式 C# 語言功能。Additionally, you can use more modern C# language features in Visual Studio by default.

C++C++
  • 使用 Visual Studio IntelliCode 這個可為您的程式碼提供 AI 輔助建議的選擇性延伸模組,在撰寫 C++ 與 XAML 程式碼時節省時間。Save time when writing C++ and XAML code by using Visual Studio IntelliCode, an optional extension that gives AI-assisted recommendations for your code.
  • 體驗編輯器內的程式碼分析警告。Experience in-editor code analysis warnings. 程式碼分析會自動在背景執行,而警告會以綠色波浪線顯示。Code analysis runs automatically in the background and warnings display as green squiggles.
  • 試用新的範本列,其使用預視視窗 (Peek Window) UI 並支援巢狀範本。Try the new Template Bar, which uses the Peek Window UI and supports nested templates.
  • 執行新增及更新的 C++ Lifetime profile 檢查程式實作。Run the new, updated implementation of the C++ Lifetime profile checker.
  • 使用新的 CMake 設定編輯器設定 CMake 專案,其提供 CMakeSettings.json 的替代方案。Configure your CMake projects using the new CMake Settings Editor, which provides an alternative to CMakeSettings.json.
  • 試試多項後端功能改進,包括 OpenMP SIMD 向量化、連結時間加快及更積極的內嵌。Try out a host of backend improvements including OpenMP SIMD vectorization, link-time speedups, and more aggressive inlining.
  • 開啟外部工具所產生的現有 CMake 快取,例如 CMakeGUI,或自訂的中繼組建系統。Open existing CMake caches generated by external tools, such as CMakeGUI, or customized meta-build systems.
  • 改善以 /Qspectre 進行的分析,來協助解決 Spectre Variant 1 (CVE-2017-5753)。Improve analysis with /Qspectre for providing mitigation assistance for Spectre Variant 1 (CVE-2017-5753). 如需詳細資訊,請參閱 Visual C++ 小組部落格文章For more information, see the Visual C++ Team Blog post.
  • 快速地在您先前的範例引數之間切換,範本 IntelliSense 的範本列現在有 [最近用過的函式] 下拉式清單。Quickly switch between your previous sample arguments now that the Template Bar for Template IntelliSense has a Most Recently Used dropdown.
F#F#
  • F# 4.6 已與其他各種編譯器功能改進一併發行。F# 4.6 is released, along with various other compiler improvements.
  • 體驗 F# 和 F# 工具的大型解決方案效能改善及各種更新。Experience performance improvements for larger solutions and various bug fixes for F# and the F# tools.
  • 了解開放原始碼參與者為 F# 語言和工具完成的一些很棒的工作。Learn about some of the awesome work done by open source contributors to the F# language and tools.
JavaScript/TypeScriptJavaScript/TypeScript
PythonPython
  • 使用 Python [新增環境] 對話方塊Easily add Python virtual and conda environments using the Python Add Environment dialog.
  • 使用新 Python 環境選取器工具列更輕鬆地使用 Python 環境,包括 [開啟資料夾] 工作區的改良支援。Work more easily with Python environments, including improved support for Open Folder workspaces using a new Python environment selector toolbar.
  • 建立 Visual Studio Live Share 工作階段,並與其他 Visual Studio 使用者在 Python 程式碼上共同作業。Create Visual Studio Live Share sessions and collaborate on Python code with other Visual Studio users.

Web 技術Web Technologies

容器工具Container Tools

使用 Xamarin 的行動裝置應用程式開發Mobile Development with Xamarin

通用 Windows 平台 (UWP)Universal Windows Platform (UWP)

  • 註解、間距、命名空間及其他任何文字變更,在從設計工具中進行編輯時都會保留。Preserve comments, spacing, namespaces, and any other text changes when making edits from the designer. 封裝資訊清單設計工具現在會在 Package.appxmanifest 檔案中,維持 xml 變更的精確逼真度。The package manifest designer now maintains strict fidelity to xml changes in the Package.appxmanifest file.
  • Windows 應用程式封裝 (機器翻譯) 專案現在支援 .NET Core 專案生產 MSIX 套件。Use the Windows Application Packaging project for .NET Core projects to produce MSIX packages.
  • 使用套件建立精靈 (機器翻譯) 直接提交到 Microsoft Store。Use the Package Creation Wizard for direct Microsoft Store submissions.
  • Visual Studio 2019 不再支援 Windows Mobile 裝置部署。Deployment to Windows Mobile devices is no longer supported in Visual Studio 2019. 嘗試部署至 Windows 10 行動裝置版裝置會產生錯誤:"Deployment to Windows Mobile devices is not supported in Visual Studio 2019" (不支援在 Visual Studio 2019 中部署至 Windows Mobile 裝置)。Attempts to deploy to a Windows 10 Mobile device will result in an error saying "Deployment to Windows Mobile devices is not supported in Visual Studio 2019". 如果您必須繼續開發 Windows 10 行動裝置版裝置的應用程式,請繼續使用 Visual Studio 2017。If you need to continue working on an application for Windows 10 Mobile devices, continue to use Visual Studio 2017.

XAML 偵錯工具:XAML Debugging Tools:

  • XAML [編輯後繼續] 現在支援 x:bind (UWP): 針對包含公用屬性、項目名稱、索引屬性路徑 (集合)、附加屬性和轉換屬性的路徑,XAML [編輯後繼續] 現在支援編輯使用 x:bind 建立的資料繫結。XAML Edit & Continue now supports x:bind (UWP): XAML Edit & Continue now supports editing data bindings created with x:bind for paths containing public properties, element name, indexed property paths (collections), attached properties, and cast properties. 但不支援其他變更。Other changes are not supported. 這項增強功能適用於最小和最大版本為 Windows 10 SDK 1809 版 (組建 10.0.17763) 或更高版本的所有應用程式。This enhancement is available to any app where the minimum and maximum versions target Windows 10 SDK version 1809 (build 10.0.17763) or higher. (注意:從 Visual Studio 2019 Update 2+ 開始,XAML [編輯後繼續] 已稱為 XAML 熱重新載入)。(Note: XAML Edit & Continue is now known as XAML Hot Reload starting with Visual Studio 2019 Update 2+).

SQL Server Data ToolsSQL Server Data Tools

  • 體驗已包含 UTF-8 定序的 SSDT 和 DacFX 更新。Experience an updated SSDT and DacFX that now includes UTF-8 collation support.

Visual Studio 2019 的新功能詳細資料Details of What's New in Visual Studio 2019

安裝Install

  • 您現在可以選擇如何安裝 Visual Studio 更新。You can now choose how to install Visual Studio updates. 預設模式為 [全部下載後安裝],讓您可在下載更新時繼續使用 Visual Studio。The default mode is ‘Download all, then install’ which allows you to continue using Visual Studio while updates are being downloaded. 請注意,若您選取 [全部下載後安裝],會需要開啟 Visual Studio 安裝程式並選取 [繼續] 來完成安裝。Note that, if you select ‘Download all, then install’, you’ll need to finish up the installation by opening the Visual Studio Installer and selecting Continue.
  • Visual Studio 更新現在會在背景下載。Visual Studio updates will now be downloaded in the background. 這些下載只會在您的電腦閒置時執行。These downloads will occur only when your machine is idle. 當下載完成時,您會在 Visual Studio 中收到通知,指出您的下載已可安裝。When the downloads complete, you will get a notification inside Visual Studio that your download is now ready to install.
  • 您現在可以透過 [工具] > [選項] 功能表變更 [產品更新] 頁面上的設定,來控制更新安裝模式以及是否要下載更新。You can now control your update installation mode and whether to download updates or not through the Tools > Options menu by changing the settings on Product Updates page.
Product Update Options
*產品更新選項**Product Update Options*

啟動視窗Start window

新的啟動視窗提供流暢的啟動體驗,以協助您快速在啟動 Visual Studio 時快速存取您的程式碼。The new start window provides a streamlined launch experience to help you quickly get to your code upon starting up Visual Studio.

  • 檢視您最近的專案與資料夾,以及以按一下的方式開啟它們。View your recent projects and folders, and open them with a single click. 透過操作功能表,從清單中釘選和移除項目。Pin and remove items from the list through the context menu.
  • 使用公開或私人的 Git URL 複製或取出程式碼,這也會自動在 IDE 中開啟資料夾。Clone or check out code by using any public or private git URL, which will also automatically open the folder in the IDE.
  • 從 Azure DevOps 登入、瀏覽和按一下來複製或連線到您的託管存放庫,或安裝其他原始檔控制主機的擴充,以檢視您和您組織擁有的存放庫。Sign in, browse, and one-click clone or connect to your hosted repositories from Azure DevOps or install extensions for other source control hosts to view repositories owned by you and your organization.
  • 瀏覽您的本機磁碟或網路共用以尋找專案、方案或包含程式碼的任何資料夾,並在 IDE 中開啟它們。Browse your local disk or network share for projects, solutions, or any folders containing code, and open them in the IDE.
  • 選取提供您程式碼 Scaffolding 的專案範本,以協助您開始使用新專案或方案。Select a project template that provides you with code scaffolding to help you get started with a new project or solution.
  • 依專案範本標題、描述和標籤來篩選範本,或透過可取得的語言、平台和專案類型來篩選。Search for project templates by their title, description, and tags or filter through available languages, platforms, and project types. 預設清單會顯示所有可用的範本,您最近使用的前 10 個專案範本清單則會顯示在左窗格,以供快速存取。The default list shows all available templates, while a list of your top 10 recently used project templates appears on the left pane for quick access. 兩頁的精靈將可讓您一次專注在一個抉擇上。A two-page wizard allows you to concentrate on one decision at a time.
Start window
*新的啟動視窗體驗**New Start Window Experience*

殼層與平台Shell and platform

  • 快透過已改進的新產品圖示,快速查看您開啟及使用的是哪個版本的 Visual Studio。Quickly spot which version of Visual Studio you're opening and using via the new, improved product icon. 新圖示在雜亂的背景中將更能清楚看見。The new icon is also more visible against a variety of backgrounds.
  • 使用我們更新的藍色佈景主題體驗 Visual Studio 的現代化外觀與操作方式,此佈景主題可為您提供更清楚的使用者介面,同時仍符合我們的協助工具標準。Experience a modernized look and feel of Visual Studio with our refreshed blue theme that gives you a cleaner user interface while still meeting our accessibility standards.
  • 透過我們以精簡為目標的變更及取回 IDE 中的垂直空間,您可以顯示更多程式碼。See more of your code, through our changes that target compactness and reclaim vertical space in the IDE. 我們已合併標題列與功能表列,同時保留現有的功能。We have combined the title bar and the menu bar while also preserving existing functionality.
  • 透過新的實驗性設定,使用 Visual Studio 做為個別監視器感知應用程式。Use Visual Studio as a Per-Monitor Awareness application through a new, experimental setting. 開啟設定可讓 Visual Studio 的元件 (例如殼層與編輯器) 以更銳利的方式呈現,不論您的顯示器設定和/或縮放比例為何。When on, this setting helps parts of Visual Studio, such as the shell and the editor, render more sharply regardless of your display configuration and/or scaling.
  • 體驗跨功能表、命令、選項與可安裝元件的加強搜尋功能。Experience an enhanced search experience across menus, commands, options, and installable components. 我們的新搜尋功能現在會在搜尋結果中動態顯示結果、偵測拼自錯誤,並提供相關資訊 (例如鍵盤快速鍵)。Our new search now displays results dynamically, accommodates spelling errors, and provides relevant information (such as keyboard shortcuts) inside the search results.
Visual Studio Search with results
*Visual Studio 中加強的搜尋功能**Enhanced Search in Visual Studio*
  • 透過「文件健康情況指示器」功能檢視與目前開啟之檔案關聯的健康情況資訊。View health information associated with your currently open file through the Document Health Indicator feature.
Document Health Indicator with issues
*文件健康情況指標 - 文件中的問題**Document Health Indicator - issue in document*
Document Health Indicator with no issues
*文件健康情況指標 - 沒有問題**Document Health Indicator - no issues*
  • 若您是 C# 開發人員,您可以使用「程式碼清理」快速清理最常見的程式碼撰寫建議。If you are a C# developer, you can quickly clean up some of the most common coding suggestions using Code Cleanup.
  • 透過設定設定「程式碼清理」來選取您要執行的修正集合。Select the set of fixers you'd like to have run by configuring Code Cleanup.
Code Cleanup configuration dialog
*設定程式碼清理**Configure Code Cleanup*
  • 透過可延伸剪貼環 (Ctrl + Shift + V) 的快顯功能表來查看您的剪貼簿歷程記錄內容。See the contents of your clipboard history via a context menu that extends the Clipboard Ring (Ctrl + Shift + V).
Clipboard Ring context menu
*剪貼環快顯功能表**Clipboard Ring Context Menu*
  • 我們藉由以下方式改進了搜尋體驗:We've improved your search experience by:
    • 新增功能表、元件和範本的篩選Adding filters for Menus, Components, and Templates
    • 合併您的搜尋選取項目,以提供關聯性最高的搜尋結果Incorporating your search selections to give you the most relevant search results
    • 讓您可直接從 Visual Studio 搜尋建立及新增專案/項目到解決方案中Enabling you to create and add new projects/items to your solution directly from Visual Studio Search
  • 現在只要使用者符合最低要求 (.NET 4.8 Preview 與 Windows 10 2018 年 4 月更新或更新版本),改良的個別監視器感知 (PMA) 體驗就會根據預設開啟。The improved Per-Monitor Awareness (PMA) experience is now turned on by default for users that meet the minimum set of requirements (.NET 4.8 Preview & and Windows 10 April 2018 Update or newer). 工具箱、中斷點、監看式、區域變數、自動變數和呼叫堆疊這類工具視窗已轉換為 PMA,因此無論您的顯示器設定及 (或) 縮放比例為何,都能清晰轉譯。Tool windows such as Toolbox, Breakpoints, Watch, Locals, Autos & Call Stack have been converted to PMA and thus render sharply regardless of your display configuration and/or scaling.
  • 新的通知體驗新增了:A new notification experience adds:
    • 狀態列的新圖示和計數器體驗A new icon and counter experience to the status bar
    • 新的快顯通知機制A new toast notification mechanism
    • Visual Studio 更新與 Visual Studio 授權到期通知Visual Studio Updates & Visual Studio licensing expiration notifications
  • 修正過的藍色佈景主題體驗,透過降低亮度、提高對比度和解決其他可用性問題,來因應意見反應。A revised Blue theme experience that addresses feedback by dialing down the luminosity, improving contrast and addressing other usability issues.
  • 利用工具列區域中的可用空間作為可拖曳區域,來加強視窗拖曳功能。Enhanced window-dragging capabilities by leveraging available free space in the toolbar region as a draggable region.
  • 您現在可以將一組程式碼清理修正程式儲存成一個設定檔,以便快速選取您想在程式碼清理期間執行的修正程式組合。You can now save a collection of Code Cleanup fixers as a profile so you can quickly select the set of fixers you want run during Code Cleanup.
Visual Studio Code Cleanup Profiles
*Visual Studio 程式碼清理設定檔**Visual Studio Code Cleanup Profiles*
  • 我們在 [延伸模組與更新] 對話方塊新增了標籤,協助您快速得知延伸模組處於 [預覽] 階段、是 [付費] 延伸模組,還是在 [試用] 期間。We've added tags in the Extensions and Updates dialog to help you quickly understand whether an extension is in Preview, is a Paid extension, or is in a Trial period.
Extensions and Updates dialogs with tags
*含有標籤的 [延伸模組和更新] 對話方塊**Extensions and Updates dialogs with tags*
  • 在 Visual Studio 2019 與更新版本中實作資料工具提示的建議方式現在是 IAsyncQuickInfoSourceProviderThe recommended way to implement data tooltips in Visual Studio 2019 and later is now IAsyncQuickInfoSourceProvider. 傳統編輯器快速資訊 API IVsTextTipDataTextTipData 在 Visual Studio 2019 Preview 1 中已過時。Legacy Editor Quick Info APIs IVsTextTipData and TextTipData are deprecated in Visual Studio 2019 Preview 1.
  • 編輯器智慧標籤 (Microsoft.VisualStudio.Language.Intellisense 命名空間中的 SmartTag* 介面系列) 已被 LightBulb API 取代,而且從 Visual Studio 2019 Preview 1 起將不再支援。The Editor Smart Tags (ISmartTag* family of interfaces in Microsoft.VisualStudio.Language.Intellisense namespace) have been deprecated in favor of the LightBulb API and are no longer supported starting with Visual Studio 2019 Preview 1.
  • 方案選項 [顯示進階組建組態]、[永遠顯示方案] 與 [建立時儲存新專案] 已因未使用率低而移除。The solution options Show advanced build configurations, Always show solution, and Save new projects when created have been removed due to low usage. 這些值已被設定為其預設值 TrueThese values have been set to their default value of True.
  • 使用新的 [預覽功能] 頁面 ([工具] > [選項] > [環境] > [預覽功能]) 選擇加入或退出特定預覽功能。Opt in or out of certain preview features using the new Preview Features page found in Tools > Options > Environment > Preview Features.

效能Performance

  • 我們為資料夾和解決方案的組建選取新增了快速鍵:Ctrl + BWe have added a new shortcut for Build Selection for folders and solutions: Ctrl + B.
  • 藉由載入您的方案且卸載所有專案,以快速開啟大型方案。Quickly open large solutions by loading your solution with all projects unloaded. 不要載入專案Do not load projects
  • 使用方案篩選檔案選擇在開啟方案時要載入的專案。Choose which projects to load on solution open with Solution Filter Files.
    • 若要建立「方案篩選檔案」,請卸載您不想要自動開啟的專案、以滑鼠右鍵按一下方案,然後選取 [另存為解決方案篩選]。Create a Solution Filter File by unloading projects you don't want opened automatically, right-clicking the solution, and selecting Save As Solution Filter. 您接著可以使用篩選檔案來為後續使用者開啟方案。You can then use the filter file to open the solution for subsequent uses. 方案篩選Solution filters
  • 我們為 CMake 檔案新增了全部建置的命令:Ctrl + Shift + BWe have added a command to Build All for CMake files: Ctrl + Shift + B.
  • 我們改善了 CMake 專案中 C++ 檔案的 IntelliSense 效能。We've improved IntelliSense performance in C++ files in CMake projects.
  • 我們在專案和解決方案操作功能表新增了一個命令,以載入未載入的專案相依性。We've added a command to load unloaded project dependencies to the project and solution context menus.
  • 用以改善 Visual Studio 效能的通知提示現在會存留在效能中心,可以透過 [說明] > [管理 Visual Studio 效能] 存取。Notification tips to improve performance of Visual Studio are now persisted in the performance center, accessible via Help > Manage Visual Studio Performance.
  • 您現在可以在「工作狀態中心」看到您的方案載入進度,並在您的方案載入完成時看到通知。You can now see your solution load progress in the Task Status Center, as well as alerts when your solution loads finish.
  • 在使用「方案篩選檔案」開啟的方案上選擇要載入的專案。Choose which projects to load on solution open with Solution Filter Files.
    • 透過卸載您不想要自動開啟的專案、以滑鼠右鍵按一下方案,然後選取 [另存為解決方案篩選],以建立「方案篩選檔案」。Create a Solution Filter File by unloading projects you don't want opened automatically, right-clicking the solution, and selecting Save As Solution Filter. 您接著可以使用篩選檔案來為後續使用者開啟方案。You can then use the filter file to open the solution for subsequent uses.
  • 當您在「開啟資料夾」案例中按一下 Ctrl+T 時,體驗改良的建置資產探索與檔案搜尋。Experience improved build asset discovery and file search when you Ctrl+T in Open Folder scenarios.
  • 請注意效能改進,因為現在 Visual Studio 編輯器將會限制輸入效能上的輔助元件影響。Notice performance improvements now that the Visual Studio editor will limit the impact of auxiliary components on typing performance. 特別是,它將會自動取消輸入時任何長時間值行的非基本作業。Particularly, it will auto-cancel any long-running, nonessential operations when typing.
  • 您可以透過 [工具] > [選項] > [文字編輯器]、[進階] 來設定 Visual Studio 輔助元件限制行為:You can configure the Visual Studio auxiliary component limitation behavior via Tools > Options > Text Editor > Advanced:
Visual Studio Typing Latency Options
「Visual Studio 鍵入延遲選項」*Visual Studio Typing Latency Options*
  • 您現在可以在方案總管工具視窗中停用從先前的工作階段還原專案階層狀態的功能。You can now disable the restoration of the project hierarchy state from the previous session in the Solution Explorer tool window. 我們實作此功能的原因是在方案開啟期間從先前的工作階段還原專案階層會造成方案載入延遲。We implemented this change because restoring the project hierarchy from previous session at solution open can delay solution load.
    • 在 [工具] > 選項 > [專案與解決方案] > [一般] 中切換此選項。Toggle this option in Tools > Options > Projects and Solutions > General.
Solution load restore settings
*解決方案載入還原設定**Solution load restore settings*
\* 您現在可以停用從原先工作階段還原工作視窗狀態的功能,改為一律在啟動時載入方案總管與 Team Explorer。\* You can now disable the restoration of the tool window's state from the previous session and instead always load Solution Explorer and Team Explorer at startup. 實作此變更的原因是從先前的工作階段還原工具視窗會造成方案在啟動時載入延遲。This change was implemented because restoring tool windows from previous sessions can delay solution loads at startup. \*您可在 [工具] > [選項] > [環境] > [啟動] 中切換此選項。\* Toggle this option in **Tools > Options > Environment > Startup**.

一般偵錯和診斷General Debugging and Diagnostics

一般偵錯General Debugging
  • 透過鍵盤使用我們的新搜尋功能來反白、尋找及瀏覽關鍵字,此搜尋功能已整合到 [監看]、[自動] 與 [區域] 視窗。Highlight, find, and navigate with keywords using our new search feature that we integrated into the Watch, Autos, and Locals windows.
Searching for keywords in Watch
在 [監看] 視窗中搜尋Searching in the Watch Window
  • 透過將逗號附加到清單項目,檢視指定名稱與選項下拉式清單,以在 [監看]、[自動] 與 [區域] 中設定資料格式。View a dropdown of specifiers and options to format data in the Watch, Autos, and Locals windows by appending a comma to a listed item.
Format Specifier Dropdown List in Watch
監看 視窗中的格式指定名稱下拉式清單Format Specifier Dropdown in Watch Window
  • 您現在可以使用適用於 .NET Core 的自訂與 DataSet 視覺化檢視支援。You can now use custom and DataSet visualizer support for .NET Core.
DataSet Visualizer for .NET Core
.NET Core 應用程式的資料集視覺化檢視DataSet Visualizer for .NET Core applications
  • 針對在 Windows 上執行的 C++ 應用程式,PDB 現在會在個別的 64 位元處理序上載入。For C++ applications running on Windows, PDB now load in a separate 64-bit process. 此變更已解決由於偵錯工具在針對包含大量模組與 PDB 的應用程式進行偵錯時耗盡記憶體而導致的各種當機問題。This change addresses a range of crashes caused by the debugger running out of memory when debugging applications that contain a large number of modules and PDBs.
受控資料中斷點Managed data breakpoints

您現在可以使用資料中斷點,在特定物件的屬性值於 .NET Core (3.0 以上的版本) 應用程式中變更時中斷。這原本是 C++ 專屬的功能。You can now break when a specific object's property value changes in .NET Core (3.0 or higher) applications using data breakpoints, a feature that was originally exclusive to C++. 因為資料中斷點可以聚焦於 特定 物件的屬性上 (即使其超出範圍),所以適合作為簡單在屬性的 setter 上放置中斷點的替代方式,不過若您有數百個物件都在呼叫該函式,那麼前一種做法可能會導致常常發生間歇性中斷。They are a great alternative to simply placing a breakpoint on a property's setter because a data breakpoint can focus on a specific object's property even when it's out of scope, whereas the former option may result in constant, irrelevant breaks if you have hundreds of objects calling that function.

Data breakpoints for .NET Core
.NET Core 應用程式中的資料中斷點Data breakpoints in .NET Core application
監看式視窗搜尋 UX 更新Watch window Search UX Updates

我們已為 [自動變數]、[區域變數] 和 [監看式] 視窗的搜尋 UI 換上了更簡單的介面。We have updated the UI for searching in the Autos, Locals, and Watch windows with a simpler interface. 「進行更深入的搜尋」功能已變更為下拉式清單,讓您可快速為起始和後續搜尋選取深度。The Search Deeper function has been changed to a dropdown so you can quickly select how deep you want your initial and subsequent searches to be.

套用程式碼樣式喜好設定Apply code style preferences
  • 您現可利用 dotnet 格式全域工具從命令列套用程式碼樣式喜好設定。You can now apply code style preferences from the command-line with the dotnet format global tool. 您需要 .NET Core 2.1 SDK 或更新版本才能安裝。To install, you will need .NET Core 2.1 SDK or later. 在您慣用的終端機中執行下列命令:dotnet tool install -g dotnet-format --version 3.0.0-beta4-19105-10Run the following command in your favorite terminal: dotnet tool install -g dotnet-format --version 3.0.0-beta4-19105-10
dotnet format video
從命令列執行 dotnet 格式。Run dotnet format from the command-line.

擴充性Extensibility

  • 在 Visual Studio 2019 中,您將再也無法安裝以 V1 vsixmanifest 延伸模組格式建置的延伸模組。You will no longer be able to install extensions built with the V1 vsixmanifest extension format in Visual Studio 2019. V1 是在 Visual Studio 2010 中引進,而且在 Visual Studio 2017 中過時,因為它會導致 Visual Studio 不穩定。V1 was introduced in Visual Studio 2010 and was deprecated in Visual Studio 2017 because it could cause reliability issues with Visual Studio. 在 Visual Studio 2019 中,已完全移除對 V1 的支援。In Visual Studio 2019, the support for V1 has been completely removed. 以 Visual Studio 2019 為目標的延伸模組應該使 V2 或 V3 的 vsixmanifest 格式重新建置。Extensions targeting Visual Studio 2019 should be rebuilt V2 or V3 of the vsixmanifest format.
  • 現在當延伸模組以同步方式自動載入時,您將會收到通知。You will now be notified when an extension is synchronously auto-loaded. 請注意,延伸模組在此版本中將正常載入並運作,但在下一版的 Visual Studio 2019 更新中可能無法運作。Note, the extension will load and work as normal in this release, but is at risk of not functioning in the next Visual Studio 2019 update. 更多詳細資訊可在我們關於透過更新延伸模組自動載入行為來改進關鍵案例回應能力的部落格文章中找到More details can be found on our blog post about improving the responsiveness of critical scenarios by updating auto load behavior for extensions.
整合的 SDK NuGet 套件Unified SDK NuGet package

在以前,延伸模組作者必須為要在自己延伸模組中使用的 Visual Studio SDK 個別 NuGet 套件製作許多個別參考。In the past, extension authors had to make many separate references to the individual NuGet packages of the Visual Studio SDK they needed to use in their extension. 五花八門的套件版本常常相異,很常導致編譯時間的相依性衝突與執行階段問題。The versions of the various packages weren't always aligned and that often resulted in dependency conflicts at compile time as well as runtime issues.

如果要解決這些問題,請使用稱作 Microsoft.VisualStudio.SDK 的新套件,其中包含所有 Visual Studio SDK 構成套件的相依性。To solve these issues, use a new package called Microsoft.VisualStudio.SDK which contains dependencies on all the packages that make up the Visual Studio SDK. 該套件解決了版本不符的問題,且讓人共容易知道該使用哪個版本。It solves the issue of version mismatches as well as makes it easy to know which version to use. 只要使用版本與您延伸模組支援的最低 Visual Studio 版本相應的套件,您就能存取整個 SDK。Simply use the version of the package that corresponds to the lowest version of Visual Studio your extension supports and you will have access to the entire SDK.

目前僅提供 15.9 版的 SDK 套件,但我們會在接下來的幾個月陸續推出直到 14.0 版的其他版本。Right now, only version 15.9 of the SDK package exists, but more will be released in the months to come all the way to version 14.0.

全新專案範本New and updated project templates

VSIX 專案 範本在經過多次更新之後,變得更易於使用且更好:The VSIX Project template has gone through multiple updates to simplify it and make it better:

  • 使用全新的整合式 SDK NuGet 套件Uses the new, unified SDK NuGet package
  • 包含 AsyncPackage 類別Includes an AsyncPackage class
  • 不再需要 .resx 檔案就能編譯套件No longer requires a .resx file to compile a package
  • 以 .NET Framework 4.7.2 為目標Targets .NET Framework 4.7.2

我們建立了全新的 空白 VSIX 專案 範本,該範本和 VSIX 專案範本相同,但沒有 AsyncPackage 類別。A new Empty VSIX Project template has been created and it is the same as the VSIX Project template but without the AsyncPackage class. 此外,其參考了整合式 SDK NuGet 套件,能為 MEF 延伸模組和其他無套件的延伸模組類型提供很好的起點。It also references the unified SDK NuGet package providing a good starting point for MEF extensions and other package-less extension types.

免費/付費/試用Free/Paid/Trial

我們之前一直沒有能輕鬆確認延伸模組是標記為免費、付費或試用的方法。There hasn't been an easy way to see if an extension was marked as free, paid, or a trial. 但現在有了如此方法,使 [延伸模組和更新] 對話方塊中的延伸模組都會清楚標記為試用或付費等狀態。This now changes so that inside the Extensions and Updates dialog, each extension that is either a trial or paid will be marked clearly as such. 不具試用/付費標籤的延伸模組均為免費。Extensions that don't have a trial/paid label are free.

測試工具Testing tools

測試視窗中先前已取消記載但標示為公開的多餘 API,已新增到淘汰清單Additional APIs in the Test Window that were previously undocumented but marked as public have been added to the deprecation list.

原始檔控制Source Control

  • 既然 Team Explorer 的 Git 工具支援 Git 隱藏,您可以暫時存放變更,以便您可以處理另一個工作。Temporarily store changes so you can work on another task now that Team Explorer's Git tools support Git stash.
  • 在 Visual Studio 2019 中,使用我們的全新提取要求體驗來檢閱、執行甚至針對來自 Azure Repos 的提取要求進行偵錯,而不需要離開 IDE。Review, run, and even debug pull requests from Azure Repos without leaving the IDE using our brand-new pull request experience in Visual Studio 2019. 若要開始,您可以從 Visual Studio Marketplace 下載適用於 Visual Studio 的提取要求延伸模組。To get started, you can download the Pull Requests for Visual Studio extension from the Visual Studio Marketplace.
New Pull Request Experience
新的提取要求體驗New Pull Request Experience

MSBuildMSBuild

  • MSBuild 工具集版本已從 15.0 變更為 CurrentThe MSBuild toolset version has been changed from 15.0 to Current. MSBuild.exe 現在位於 %VSINSTALLDIR%\MSBuild\Current\Bin\MSBuild.exeMSBuild.exe is now in %VSINSTALLDIR%\MSBuild\Current\Bin\MSBuild.exe.
  • MSBuild (與 Visual Studio) 現在以 .NET Framework 4.7.2 為目標。MSBuild (and Visual Studio) now targets .NET Framework 4.7.2. 若要使用新的 MSBuild API 功能,您的組件也必須升級,但現有的程式碼將繼續運作。If you wish to use new MSBuild API features, your assembly must also upgrade, but existing code will continue to work.

C#C#

對於 Visual Studio 2019 之前的每個版本,C# 語言版本一律是相當於 最新主要For every release prior to Visual Studio 2019, the default C# language version was always equivalent to Latest Major. 在 Visual Studio 2017 中,C# 發展並推出三個次要版本:7.1、7.2 和 7.3。In Visual Studio 2017, C# evolved and released three minor versions: 7.1, 7.2, and 7.3. 不過,新專案已仍預設為 C# 7.0。However, new projects were still defaulting to C# 7.0. 這樣令想使用新功能的 C# 開發人員挫折,他們必須針對每個新專案手動變更,語言版本。This proved frustrating for C# developers who wanted to use new features, but had to manually change the language version for each new project.

為了解決此問題,預設值 C# 語言版本會取決於其目標架構:To address this problem, the default C# language version is determined by its target framework:

  • 如果您的目標是 .NET Core 3.0 預覽版,則 C# 語言版本會是 C# 8.0 預覽版。If you are targeting .NET Core 3.0 preview, the C# language version will be C# 8.0 Preview.
  • 如果您的目標是 .NET Framework 或任何非預覽版的 .NET Core,則 C# 語言版本將會是 C# 7.3。If you are targeting .NET Framework or any non-preview of .NET Core, the C# language version will by C# 7.3.

這樣會預設為可使用最新的穩定 C# 語言功能,而在使用 .NET Core 預覽版時,會使用配合 .NET Core 3.0 預覽版的 C# 8.0 預覽語言功能。This allows the use of the latest stable C# language features by default, and when using .NET Core previews, the use of C# 8.0 preview language features that align with .NET Core 3.0 Preview.

如果您在專案或 props 檔案中,透過 LangVersion 指定語言版本,該語言版本會覆寫先前所述的預設值。If you specify a language version via LangVersion in a project or props file, that language version overrides the previously described default.

C++C++

  • 既然 Visual Studio Live Share 支援 C++,您現在可以即時共同作業。Collaborate in real time now that Visual Studio Live Share supports C++.
  • 透過使用 IntelliCode 這個選擇性延伸模組來節省時間,此選擇性延伸模組會使用其專屬定型與您的程式碼上下文將您最可能使用的項目放在完成清單頂端。Save time by by using IntelliCode, an optional extension that uses its extensive training and your code context to put what you're most likely to use at the top of your completion list. 針對 C++,當您使用 STL 之類的熱門程式庫時,IntelliCode 提供最多幫助。For C++, IntelliCode offers the most help when you are using popular libraries like STL.
  • 我們已修改數個專案範本名稱與描述,以符合更新的 [新增專案] 對話方塊。We have modified several project template names and descriptions to fit with the updated New Project dialog.
  • 我們已移除 Clang/C2 實驗性元件。We have removed the Clang/C2 experimental component. 針對具有 /permissive- 和/或 /std:c++17 的完整 C++ 標準一致性使用 MSVC 工具集,或針對 Windows 使用 Clang/LLVM 工具鏈。Use the MSVC toolset for full C++ standards conformance with /permissive- and/or /std:c++17, or the Clang/LLVM toolchain for Windows. 請參閱 Visual C++ 小組部落格 (英文) 以取得詳細資訊。See the Visual C++ Team Blog for more details.
  • 我們已將 C++ 編譯器 /Gm 切換參數設定為過時。We have deprecated the C++ Compiler /Gm switch. 若已明確定義用 /Gm 切換參數,請考慮將它從您的建置指令碼移除。Consider disabling the /Gm switch in your build scripts if it's explicitly defined. 或者,您也可以安全地忽略 /Gm 的過時警告,因為當使用 [將警告視為錯誤] (/WX) 時不會將它視為錯誤。Alternatively, you can also safely ignore the deprecation warning for /Gm as it will not be treated as error when using "Treat warnings as errors" (/WX).
  • C++ Android 體驗現在預設為 Android SDK 25 與 Android NDK 16b。The C++ Android experience now defaults to Android SDK 25 and Android NDK 16b.
生產力Productivity
  • 程式碼分析現在會在背景自動執行。Code analysis now runs automatically in the background. 警告會在您鍵入的同時,在編輯器內以綠色波浪線顯示。Warnings display as green squiggles in-editor as you type.
  • 範本列現在使用 Peek Window UI 來取代強制回應是窗、支援巢狀範本,並會將任何預設引數預先填入預視視窗中。The Template Bar now utilizes the Peek Window UI rather than a modal window, supports nested templates, and prepopulates any default arguments into the Peek Window.
  • NULL->nullptr 程式碼分析警告 (C26477 USE_NULLPTR_NOT_CONSTANT) 的自動修正可在相關程式行透過燈泡功能表取得,並會根據預設在 C++ Core Check Type Rules 規則集中啟用。An automatic fix-it for the NULL->nullptr code analysis warning (C26477 USE_NULLPTR_NOT_CONSTANT) is available via the lightbulb menu on relevant lines, enabled by default in the C++ Core Check Type Rules ruleset. IDE 中的其他簡易修正還包括:新增遺漏的 #include 指示詞、修正遺漏的分號及修正不當使用 '*' 與 '&' 的情形。Additional quick fixes in the IDE include adding missing #include directives, fixing missing semicolons, and fixing incorrect uses of '*' versus '&'.
  • 根據預設,C++ 主控台和傳統型應用程式不再產生先行編譯標頭檔。Precompiled headers are no longer generated by default for C++ console and desktop apps.
  • 移至定義現在依 #include 指示詞執行,會開啟對應的檔案。Go to Definition now works on #include directives, opening the corresponding file. 這包括 F12 快速鍵,其提供輕鬆的程式碼瀏覽方式。This includes the F12 shortcut, providing an easy way to navigate around your code.
  • 暫留在程式碼區塊的右大括弧,會提供有關該區塊內容的實用資訊。Hovering over a closing brace of a code block provides some helpful information about the context of that block.
  • 我們在 ConcurrencyChecker 中從 <mutex> 標頭新增了知名 STL 類型的支援。We've added support in ConcurrencyChecker for well-known STL types from the <mutex> header.
  • Lifetime profile 檢查程式已更新的部份實作可用於偵測懸置的指標和參考。An updated partial implementation of the Lifetime profile checker is available for detecting dangling pointers and references.
  • 我們在編譯器中新增了 C++20 運算子 <=> (「太空船」) 的初步支援,以進行三向比較。We've added initial support in the compiler for the C++20 operator <=> ("spaceship") for three-way comparison.
CMakeCMake
  • 我們改善了 CMake 專案中 C++ 檔案的 IntelliSense 效能。We've improved performance of IntelliSense for C++ files in CMake projects.
  • Visual Studio 藉由偵測您的 Linux 電腦上是否有相容的 CMake 版本,協助您在 Linux 上使用 CMake 啟動 C++ 開發。Visual Studio helps bootstrap your C++ development with CMake on Linux by detecting if you have a compatible version of CMake on your Linux machine. 若沒有,則會為您安裝。If not, it offers to install it for you.
  • CMake 設定編輯器可當成 CMakeSettings.json 的替代方式,而且與 CMakeGUI 有部分相同。The CMake Settings Editor provides an alternative to CMakeSettings.json and provides some parity with CMakeGUI.
  • CMake 功能表已移除並重新安排,以提高與專案和解決方案之間的相似性。The CMake menu has been removed and reorganized for closer parity with projects and solutions.
  • CMakeSettings 中不相容的設定 (例如不相符的架構或不相容的 CMake 產生器設定) 會在 JSON 編輯器中顯示波浪線,並在 [錯誤清單] 中顯示錯誤。Incompatible settings in CMakeSettings, such as mismatched architectures or incompatible CMake generator settings, show squiggles in the JSON editor and errors in the Error List.
  • 只要執行了 vcpkg integrate install,就會為 IDE 中開啟的 CMake 專案自動偵測和啟用 vcpkg 工具鏈。The vcpkg toolchain is automatically detected and enabled for CMake projects that are opened in the IDE once vcpkg integrate install has been run. 您可透過在 CMakeSettings 中指定空白的工具鏈檔案來關閉這個行為。This behavior can be turned off by specifying an empty toolchain file in CMakeSettings.
  • 根據預設,CMake 現在會啟用 Just My Code 偵錯。CMake projects now enable Just My Code debugging by default.
  • 靜態分析警告現在可在背景處理,以及在 CMake 專案的編輯器中顯示。Static analysis warnings can now be processed in the background and displayed in the editor for CMake projects.
  • 為 CMake 專案新增了更清楚的建置及設定 [開始] 和 [結束] 訊息,及 Visual Studio 建置進度 UI 的支援。We've added clearer build and configure 'begin' and 'end' messages for CMake projects and support for Visual Studio's build progress UI. 此外,[工具] > [選項] 中現在有 CMake 詳細資訊設定,可用來自訂輸出視窗中的 CMake 組建詳細等級及設定訊息。Additionally, there is now a CMake verbosity setting in Tools > Options to customize the detail level of CMake build and configuration messages in the Output Window.
  • CMakeSettings 中現在支援 'cmakeToolchain' 設定,不必手動修改 CMake 命令列就能指定工具鏈。The 'cmakeToolchain' setting is now supported in CMakeSettings to specify toolchains without manually modifying the CMake command line.
後端Backend
  • 我們進行了建置輸送量的功能改進,包括連結器對檔案 I/O 的處理,以及 PDB 合併與建立的連結時間。We've implemented build throughput improvements, including the linker's handling of File I/O and link time in PDB type merging and creation.
  • 我們新增了 OpenMP SIMD 向量化的基本支援。We've added basic support for OpenMP SIMD vectorization. 新的 CL 參數 -openmp:experimental 可加以啟用。This can be enabled with the new CL switch -openmp:experimental. 這讓標註了 “#pragma omp simd” 的迴圈有機會向量化。This allows loops annotated with “#pragma omp simd” to potentially be vectorized. 向量化並不保證會發生,而已標註但未向量化的迴圈會收到回報的警告。The vectorization is not guaranteed, and loops annotated but not vectorized will get a warning reported. 若未支援任何 SIMD 子句,就會直接略過並回報警告。If no SIMD clauses are supported, they will simply be ignored and a warning will be reported.
  • 我們新增了內嵌命令列參數 -Ob3,這是比 -Ob2 更為積極的版本。We've added a new inlining command line switch -Ob3, which is a more aggressive version of -Ob2. 根據預設,-O2 (將二進位檔最佳化以提高速度) 仍表示 -Ob2;若您發現編譯器內嵌不足,請考慮傳遞 -O2 -Ob3。-O2 (optimize the binary for speed) still implies -Ob2 by default; if you find the compiler is under-inlining, consider passing -O2 -Ob3.
  • 為了支援包含數學程式庫函式及其他運算 (例如整數除法) 呼叫的迴圈手動向量化,我們新增了 Short Vector Math Library (SVML) 內建函式的支援,以計算 128 位元、256 位元或 512 位元的向量對等項目。To support hand vectorization of loops containing calls to math library functions and certain other operations like integer division, we've added support for Short Vector Math Library (SVML) intrinsic functions that compute the 128-bit, 256-bit or 512-bit vector equivalents. 若要了解支援函式的定義,請參閱 Intel Intrinsic GuideSee the Intel Intrinsic Guide for definitions of the supported functions.
  • 新增及改進的最佳化:New and improved optimizations:
    • 為使用 SIMD (向量) 內建項目的運算式提供常數摺疊和算數簡化,浮點數和整數形式均適用Constant-folding and arithmetic simplifications for expressions using SIMD (vector) intrinsics, for both float and integer forms
    • 有更強大的分析可從控制流程 (if/else/switch 陳述式) 擷取資訊,以移除一律證實為 true 或 false 的分支A more powerful analysis for extracting information from control flow (if/else/switch statements) to remove branches always proven to be true or false
    • 改進 memset 展開,以使用 SSE2 向量指令Improved memset unrolling to use SSE2 vector instructions
    • 改進了未使用的結構/類別副本移除,尤其是依值傳遞的 C++ 程式Improved removal of useless struct/class copies, especially for C++ programs which pass by value
    • 使用 memmove 改善了程式碼最佳化,例如 std::copy 或 std::vector 及 std::string 建構Improved optimization of code using memmove, such as std::copy or std::vector and std::string construction
淘汰項目Deprecations
  • 不再提供 Managed C++ 測試專案範本。The Managed C++ Test Project template is no longer available. 您可以繼續在現有的專案中使用 Managed C++ 測試架構,但對於新的單元測試,請考慮使用 Visual Studio 有為其提供範本 (MSTest、Google Test) 或 Managed C# 測試專案範本的其中一個原生測試架構。You can continue using the Managed C++ Test framework in your existing projects but, for new unit tests, consider using one of the native test frameworks for which Visual Studio provides templates (MSTest, Google Test) or the Managed C# Test Project template.
  • Visual Studio 安裝程式不再提供 Windows 8.1 SDK。The Windows 8.1 SDK is no longer available in the Visual Studio installer. 請將您的 C++ 專案升級到最新 Windows 10 SDK。Please upgrade your C++ projects to the latest Windows 10 SDK. 若您有 8.1 的強式相依性,可從 Windows SDK 封存加以下載。If you have a hard dependency on 8.1, you can download it from the Windows SDK archive.
  • 最新的 C++ 工具組無法再將 Windows XP 設為目標。Windows XP targeting will no longer be available for the latest C++ toolset. VS 2017 級 MSVC 編譯器與程式庫的 XP 目標設定仍具備支援,並可透過「個別元件」安裝。XP targeting with VS 2017-level MSVC compiler & libraries is still supported and can be installed via "Individual components".
  • 我們的文件積極勸阻您對 Visual C++ 執行階段部署使用合併模組。Our documentation actively discourages usage of Merge Modules for Visual C++ Runtime deployment. 我們在這個版本更進一步淘汰了 MSM。We are taking the extra step this release of marking our MSMs as deprecated. 請考慮將您的 VCRuntime 集中部署從 MSM 移轉到可轉散發套件。Consider migrating your VCRuntime central deployment from MSMs to the redistributable package.
  • 下列 C++ ATL/MFC 精靈已無法再使用:ATL COM+ 1.0 元件精靈、ATL Active Server Pages 元件精靈、ATL OLE DB 提供者精靈、ATL 屬性頁精靈、ATL OLE DB 取用者精靈、MFC ODBC 取用者、來自 ActiveX 控制項的 MFC 類別及來自 Type Lib 的 MFC 類別。The following C++ ATL/MFC wizards are no longer available: ATL COM+ 1.0 Component Wizard, ATL Active Server Pages Component Wizard, ATL OLE DB Provider Wizard, ATL Property Page Wizard, ATL OLE DB Consumer Wizard, MFC ODBC Consumer, MFC class from ActiveX control, and MFC class from Type Lib. 這些技術的範例程式碼封存於 Microsoft DocsVCSamples GitHub 存放庫Sample code for these technologies is archived at Microsoft Docs and the VCSamples GitHub repository.

F#F#

Visual Studio 2019 中的 F# 改善有三個主要區域:F# improvements in Visual Studio 2019 are in three major areas:

  • F# 4.6F# 4.6
  • 中型和大型方案的重大效能改善Major performance improvements for medium and larger solutions
  • 優秀開放原始碼社群的許多開放原始碼工作Lots of open source work by our excellent open source community
F# 4.6F# 4.6

此版本包含 F# 4.6 語言:This release contains the F# 4.6 language:

F# 編譯器和 FSharp.Core 的改善F# compiler and FSharp.Core improvements

F# 和編譯器以及 FSharp.Core 已經過許多改善,尤其是來自開放原始碼參與者:The F# and compiler and FSharp.Core have seen numerous improvements, especially from open source contributors:

  • fsi.exefsc.exe 現在預設為 .NET Framework 4.7.2,讓載入以 4.7.2 或更低版本 .NET Framework 的元件變得可行 (#4946)。fsi.exe and fsc.exe now defaults to .NET Framework 4.7.2, allowing the loading of components targeting this framework or lower (#4946).
  • 我們已將結構上的方法最佳化,並將記錄建構為具有與類別和類別型記錄相同的效能 (#3057)。We optimized methods on structs and struct records to perform as well as methods on classes and class-based records (#3057).
  • 我們已在 F# 程式碼中最佳化為合併布林值邏輯發出的 IL (#635)。We optimized the emitted IL for combined Boolean logic in F# code (#635).
  • 我們將在 F# 中搭配字串的 + 用法最佳化,以盡可能呼叫最少的 String.Concat (#5560)。We've optimized the use of + with strings in F# to call the minimal amount of String.Concat calls as possible (#5560).
  • 我們修正了 FSharp.Core 套件中會包含多餘附測試資產之目錄的問題。We fixed an issue in the FSharp.Core package where some extra directories with test assets were included. FSharp.Core 4.5.5 和 4.6.1 已經沒有這項問題了 (#5814)。FSharp.Core 4.5.5 and 4.6.1 should have the fix (#5814).
  • 當使用者定義的屬性不是繼承自 Attribute 類別時,您現在將會收到警告,由 Vasily Kirichenko 提供。When a user-defined attribute does not inherit from the Attribute class, you will now receive a warning, by Vasily Kirichenko.
  • 專案檔中的 AssemblyInformationVersionAttribute 值現在支援任意值以支援 SourceLink 之類的案例 (#4822)。The AssemblyInformationVersionAttribute value in a project file now supports arbitrary values to support scenarios such as SourceLink (#4822).
  • 「主動式模式」不合法語法的錯誤 (Bug) 會導致內部編譯器錯誤的問題已由 Steffen Forkmann 解決 (#5745)。A bug where illegal syntax with Active Patterns would cause an internal compiler error has been fixed by Steffen Forkmann (#5745).
  • Module 尾碼錯誤地新增到遞迴模型中之模型以比對唯一差異是泛型參數之類型的錯誤 (Bug) 已由 BooksBaum 解決 (#5794)。A bug where the Module suffix was erroneously added to a module in a recursive module to match a type where the only difference is a generic parameter was fixed by BooksBaum (#5794).
  • 當型別參數不與型別名稱鄰接時的錯誤訊息改良功能已由 Alan Ball 改良 (#4183)。An improvement to the error message when type parameters are not adjacent to a type name has been improved by Alan Ball (#4183).
  • uint16 常值尾碼正確地在無效數值常值的錯誤訊息中列出的問題是由 Teo Tsirpanis (#5712) 解決。The uint16 literal suffix is listed correctly in the error messages for invalid numeric literals, by Teo Tsirpanis (#5712).
  • 計算運算式的錯誤訊息已不再訊息中說明 async,而是改為意指「計算運算式」,這是由 John Wostenberg (#5343) 處理。Error messages for computation expressions no longer state async in the message and instead refer to "computation expression(s)", by John Wostenberg (#5343).
  • F# 互動式中不正確地參考 .dll 的錯誤訊息已由 Bartoz Sypytkowski 修正 (#5416)。An error message when incorrectly referencing .dlls in F# interactive was fixed by Bartoz Sypytkowski (#5416).
  • 當呼叫會隱藏繼承成員的成員時,靜態解析的類型參數無法予以處理,而 Victor Peter Rouven Müller 修正了這個 Bug (#5531)。A bug where Statically Resolved Type Parameters couldn't handle calling a member that hides an inherited member was fixed by Victor Peter Rouven Müller (#5531).
  • Steffen ForkmannRobert Jeppesen 為編譯器新增了各種小的效能改善。Various smaller performance improvements to the compiler have been added by Steffen Forkmann and Robert Jeppesen.
F# 效能改善F# performance improvements

Visual Studio 2019 中 F# 的另一個重要焦點區域是中型和大型方案的效能。Another big focus area for F# in Visual Studio 2019 has been performance for medium and large solutions. 我們已解決一些存在非常久的問題,某些可追溯至第一版的「適用於 Visual Studio 的 F# 工具」。We addressed some very long-standing issues, some of which dating back to the very first edition of F# tools for Visual Studio. 我們也獲得來自優秀 F# 開放原始碼社群的一些協助。We also got some help from the excellent F# open source community.

  • 我們修改了 Roslyn 將 F# 語言服務初始化的方式。We've revamped how the F# language service is initialized by Roslyn. 大型解決方案的類型色彩標示應該會較快出現。Type colorization for larger solutions should generally appear sooner.
  • 我們已變更我們來源文字的呈現方式,來避免大型配置超過時間,特別是具有大型檔案的配置 (#5935#5936#5937#4881)。We changed our representation of source text to avoid large allocations over time, especially with bigger files (#5935, #5936, #5937, #4881).
  • 我們已變更小型檔案編輯的建置快取,大幅減少使用的記憶體 (#6028)。We changed our build caches for small edits to files to use significantly less memory (#6028).
  • 我們修改了建議名稱的編譯器功能,當輸入無法辨識的語彙基元時,系統會在需要時才計算這些建議,這樣大幅減少了在大型專案中緩慢輸入時的 CPU 和記憶體使用量 (#6044)。We modified a compiler feature that suggests names when unrecognized tokens are typed to only compute these suggestions on-demand, resulting in significant CPU and memory reductions when typing slowly in larger solutions (#6044).
  • 我們已變更 IntelliSense,因此它預設不會再顯示來自未開啟之命名空間的符號。We changed IntelliSense so that it will no longer show symbols from unopened namespaces by default. 此修正大幅改善在含許多參考的專案中之 IntelliSense 的效能。This notably improves performance for IntelliSense in projects with many references. 您可以透過設定中的 [工具] > [選項] > [文字編輯器] > [F#] > [IntelliSense],再次開啟此功能。This feature can be turned back on in the settings via Tools > Options > Text Editor > F# > IntelliSense.
  • 我們已減少使用型別提供者在完成清單中產生非常大量的提供類型時的記憶體使用量 (#5599)。We improved memory usage when using Type Providers to generate very large amounts of provided types in a completion list (#5599).
  • Avi Avni 已修正建議無法辨識之名稱的內部字串比較演算法,以減少 CPU 和記憶體使用量 (#6050)。A reduction to CPU and memory usage to an internal string comparison algorithm for suggesting unrecognized names has been fixed by Avi Avni (#6050).
  • Avi Avni 修正了大型字串配置的顯著來源,這種情況在 IDE 工具特別常見 (#5922)。A notable source of large string allocations, particularly for IDE tooling, was fixed by Avi Avni (#5922).
  • Chet Husk 已修正來自計算 IntelliSense 之值得注意的大型物件堆積配置來源 (#6084)A notable source of Large Object Heap allocations coming from computing IntelliSense has been fixed by Chet Husk (#6084)
F# 工具的改善F# tooling improvements

除了效能改善,還有 Visual Studio 2019 F# 工具的各種其他改善:In addition to performance improvements, various other improvements to F# tooling for Visual Studio 2019 have been made:

  • 新增 open 陳述式程式碼修正現在將會預設為在檔案頂端新增 open 陳述式。The Add open statement code fix will now default to adding the open statement at the top of the file.
  • 我們已修正使用者程式碼中的 match! 使結構指導方針與程式碼 (概述後續範圍節點) 無效的錯誤 (Bug) (#5456)。We fixed a bug where match! in user code invalidated structure guidelines and code outlining nodes for subsequent scopes (#5456).
  • 編輯器現在將會使用可變動值顏色標示正確地將 byrefoutrefref 值的色彩設定為與記錄欄位相同 (#5579)。The editor will now correctly color byref, outref, and ref values as record fields with the mutable value colorization (#5579).
  • 我們已修正重新命名重構無法識別符號名稱中之 ' 字元的問題 (#5604)。We fixed a bug where the rename refactoring did not recognize the ' character in symbol names (#5604).
  • 我們修正了為 F# 指令檔重新命名會導致色彩標示資料遺失的長期 Bug (#1944)。We've fixed a longstanding bug where renaming F# script files resulted in a loss of colorization data (#1944).
  • 我們清理了 IntelliSense,使它在按一下退格鍵時不會在清單中顯示不相關的項目。We cleaned up IntelliSense so that it doesn't show unrelated items in the list when pressing backspace.
  • 當「智慧」縮排開啟時,貼上 F# 程式碼到編輯器中會設定其格式以符合適當的範圍 (以目前的游標位置為基礎) 是由 Saul Rennison 實作 (#4702)。With "Smart" indentation on, pasting F# code into the editor will now format it to match an appropriate scope based on the current cursor position, implemented by Saul Rennison (#4702).
  • Jakob Majocha 修正了 F# 編輯器不會同步的問題 (#5997, #5998)。An issue where F# editor options weren't syncing has been fixed by Jakob Majocha (#5997, #5998).
  • Eugene Auduchinok 已修正 IntelliSense 在 inherit 子句內的建構函式中,不會顯示主要建構函式的錯誤 (bug) (#3699)A bug where IntelliSense in a constructor within an inherit clause wouldn't show the primary constructor has been fixed by Eugene Auduchinok (#3699)
  • Eugene Auduchinok 對 F# 語言服務進行了各種較小的改善Various smaller improvements to the F# language service have been made by Eugene Auduchinok
F# 開放原始碼基礎結構F# open source infrastructure

我們已完全移轉 F# 和 F# 工具程式碼基底,以使用 .NET SDK。We've fully migrated the F# and F# tools codebase to use the .NET SDK. 這可大幅簡化開發人員的貢獻程序,尤其對不是使用 Windows 的開發人員。This dramatically simplifies the contribution process for developers, especially if they are not using Windows. 此外,Jakob Majocha 已協助根據程式碼基底的變更為新參與者清理文件。Additionally, Jakob Majocha has helped in cleaning up documents for new contributors in light of the changes to the codebase.

PythonPython

根據客戶意見反應,Visual Studio 2019 包括管理 Python 環境的檢修體驗:Based on customer feedback, Visual Studio 2019 includes an overhauled experience for managing Python environments:

  • 我們已加入新的 [新增環境] 對話方塊,這可以簡化在您的專案中建立及新增虛擬環境與 conda 環境的體驗。We added a new Add environment dialog that simplifies the experience of creating and adding virtual environments and conda environments in your project.
  • Visual Studio 安裝程式再也不會安裝完整版 Anaconda 以減少 Visual Studio 安裝大小並避免升級期間的錯誤。The Visual Studio installer no longer installs full versions of Anaconda to reduce the size of Visual Studio installs and avoid errors during upgrades.
  • Miniconda 與 Python 工作負載組合成選用元件,讓您不必安裝 Miniconda/Anaconda,就可以建立 conda 環境。Miniconda is bundled with Python workload as an optional component, enabling you to create conda environments without having to install Miniconda/Anaconda.
  • 若您專案的根目錄有 requirements.txt (虛擬環境) 或 environment.yml (conda 環境),系統將會自動提示您新增環境。You will now be automatically prompted to add an environment if a requirements.txt (virtual environment) or environment.yml (conda environment) is present at the root of your project.
  • 在編輯 Python 檔案時,有新的 [Python 環境] 工具列可用。A new Python Environments toolbar is available when editing Python files. 新的工具列可讓您在處理專案、[開啟資料夾] 工作區或其他專案中的鬆散 Python 檔案時,在不同 Python 解譯器之間切換。The new toolbar enables you to switch between different Python interpreters when working with projects, Open Folder workspaces or loose Python files in other projects.
  • Python IntelliSense 中自動完成的品質改善,包括偵測相關項目和命名空間匯入的改善。Improvements to the quality of auto-completions in Python IntelliSense, including improved detection of relative and namespace imports.
  • Django 專案範本已更新,以支援 Django 2.x。Django project templates have been updated to support Django 2.x.
  • 函式傳回值現在會顯示在 Python 偵錯工具中。Function return values are now shown in the Python debugger.
  • 您現在可以建立 VS Live Share 工作階段,並與其他 Visual Studio 使用者在 Python 程式碼上共同作業。You can now create VS Live Share sessions and collaborate on Python code with other Visual Studio users. 先前,從 Visual Studio Code 建立加入工作階段建立時,才支援 Python。Previously, Python was only supported when joining sessions created from Visual Studio Code.

JavaScript/TypeScriptJavaScript/TypeScript

  • 我們新增了在 Node.js 專案中的單元測試提供 JavaScript 偵錯功能的支援。We have added support for enabling JavaScript debugging within unit tests in Node.js projects. 這是 Node.js 客戶期盼已久的功能。This was a long-requested feature from our Node.js customers.
  • JavaScript/TypeScript 語言服務會在自動在已安裝的 TypeScript NuGet 套件npm 套件的專案中載入 (NuGet 套件支援 TypeScript 3.2 以上的版本,npm 套件則支援 TypeScript 2.1 以上的版本)。The JavaScript/TypeScript language service will now be automatically loaded in projects that have the TypeScript NuGet package or npm package installed (TypeScript 3.2 and up is supported from the NuGet package and TypeScript 2.1 and up is supported from the npm package).
  • 我們提高了語言功能的記憶體上限,使其能夠更處理更大型的專案,藉此改善了語言服務的效能。We have implemented performance improvements in the language service as a result of increasing the memory cap on the language service to handle larger projects.
  • 根據預設,不會再於錯誤清單中顯示已關閉 JavaScript/TypeScript 檔案的診斷。We no longer show diagnostics of closed JavaScript/TypeScript files in the error list by default.
  • 傳統 JavaScript 語言服務已無法使用。The legacy JavaScript language service is no longer available. 先前,使用者可以選擇還原傳統 JavaScript 語言服務。Previously, users had the option of restoring the legacy JavaScript language service. 使用者將會有新的內建 JavaScript 語言服務可用。Users will now have the new JavaScript language service out-of-the-box. 新語言服務是以 TypeScript 語言服務為基礎,它是由靜態分析所提供。The new language service is based on the TypeScript language service, which is powered by static analysis. 這可為您提供更豐富的工具功能,因此您的 JavaScript 程式碼可受益於以型別定義為基礎的更豐富的 IntelliSense。This enables better tooling, so your JavaScript code can benefit from richer IntelliSense based on type definitions. 新的服務是輕量型服務,而且取用比傳統服務少的記憶體,為使用者提供更好的較能做為其程式碼規模。The new service is lightweight and consumes less memory than the legacy service, providing users with better performance as their code scales.

Team Explorer 與 Azure DevOpsTeam Explorer and Azure DevOps

我們對 Azure DevOps 的 Git 工作項目進行了功能改進。We have made improvements to the Git Work Items experience with Azure DevOps.

  • 您可以使用新的身分識別選擇器指派工作項目給自己或其他人。Assign work items to yourself or others with the new identity picker. 根據預設,您會看到最近使用的人員清單。By default, you will be shown a list of the people you have most recently used. 或者,您可以使用搜尋功能來搜尋及尋找組織中的其他人。Or, use the search ability to search and find others in your organization.
  • 我們改善了註解訊息中的 #提及體驗。We have improved the #mentions experience in the commit message. 當您從 #提及選擇器中選取工作項目時,該項目就會自動新增到 [相關的工作項目] 清單中。As you select a work item from the #mention picker, it will automatically be added to the Related Work Items list.
Assigning work items and #mention improvements
指派工作項目和 #提及功能改進Assigning work items and #mention improvements

最忙碌路徑反白顯示Hot Path Highlighting

  • 我們在效能分析工具的 CPU 使用率和 DotNet 物件配置工具中,都新增了最忙碌路徑反白顯示的支援。We have added support for hot path highlighting in both the CPU Usage and DotNet Object Allocation tools in the Performance Profiler. 選取呼叫樹狀結構中的任何函式,並按 [最忙碌路徑] 按鈕,即可展開 CPU 使用率或 DotNet 物件配置的最忙碌路徑。Select any function in the call tree and press the hot path button to expand the CPU Usage or Dot Net Object Allocation hot path. 這項功能可讓您輕易找出使用了最高 CPU 百分比或配置了最多物件的函式呼叫。This feature allows you to easily identify the function calls which use the highest percentage of the CPU or that allocate the most objects.
Hot path highlighting in the CPU Usage tool
CPU 使用率工具中的醒目提示功能Hot path highlighting in the CPU Usage tool

.NET 與 ASP.NET 工具.NET and ASP.NET Tools

  • 我們對所有應用程式的發行設定檔摘要頁面進行了多種小規模的 UX 改進 (新的區段標題和動作/快速鍵)。We have implemented various small UX improvements to the publish profile summary page (new section headers and actions/shortcuts) for all applications.
  • 在將 ASP.NET 應用程式發行到 Azure App Service 時,發行設定檔摘要頁面現在會有名為「相依性」的新區段。When publishing ASP.NET applications to Azure App Service, the publish profile summary page now has a new section called "Dependencies". 這個新區段目前可讓您在 Azure 儲存體和 Azure SQL 資源與您的應用程式服務執行個體之間建立關聯。This new section currently allows you to associate Azure Storage and Azure SQL resources with your app service instance. 日後,會有更多 Azure 服務透過這種機制呈現。Expect more Azure services to be surfaced through this mechanism in the future.
  • 透過我們加入的相容性,使用程式碼度量搭配 .NET Core 專案。Use code metrics with .NET Core projects with our added compatibility.
  • 透過 [工具] > [選項] > [文字編輯器] > [C#] > [程式碼樣式] 使用 [從設定產生 .editorconfig 檔案] 按鈕,將編輯器設定匯出到 Editorconfig 檔案。Export editor settings to an Editorconfig file through Tools > Options > Text Editor > C# > Code Style with the button "Generate .editorconfig file from settings".
  • 使用 C# 與 Visual Basic 的新 Regex 剖析器支援。Use C# and Visual Basic's new Regex parser support. 現在可辨識規則運算式,而且已在其上啟用語言功能。Regular expressions are now recognized, and language features are enabled on them. Regex 字串會在在字串傳遞到 Regex 建構函式或字串前面有包含字串 language=regex 的註解時辨識。Regex strings are either recognized when a string is passed to the Regex constructor or when a string is immediately preceded with a comment containing the string language=regex. 此版本中包含的語言功能為分類、括號對稱、反白參考與診斷。The language features included in this release are classification, brace matching, highlight references, and diagnostics.
Regular expressions now have parser support
規則運算式剖析器支援Regular Expression Parser Support
  • 您現在可以搭配選擇性的程式碼修正為未使用的私用成員使用無作用程式碼分析,以移除未使用的成員宣告。You can now use dead code analysis for unused private members with an optional code fix to remove unused member declaration.
  • 存取子上的「尋找參考」功能現在只會傳回該存取子的結果。The Find References feature on an accessor now only returns results for that accessor.
  • 我們已加入程式碼修正以產生解構方法。We have added a code fix for generating a deconstruct method.
  • 當程式碼貼到檔案中時,可已新增 "Using" 陳述式。"Using" statements can be added when code is pasted into a file. 程式碼修正會在貼上已辨識程式碼 (提示您新增相關遺失匯入) 之後出現。A code fix appears after pasting recognized code that prompts you to add relevant missing imports.
  • 現在有更多的重構與快速動作可以使用 "Ctrl + ." 來取得There are now more refactoring and quick actions available by using "Ctrl + ." 或按一下 "Alt + Enter":or "Alt + Enter":
    • 針對隱含 "await" 但忽略的案例,現在有編譯器警告。For cases where "await" is implied but omitted, there is now a compiler warning.
    • 針對將區域函式轉換為方法。For converting a local function to a method.
    • 針對將元組轉換為具名結構。For converting a tuple to a named-struct.
    • 針對將匿名型別轉換為類別。For converting an anonymous type to a class.
    • 針對將匿名型別轉換為元組。For converting an anonymous type to a tuple.
    • 針對 foreach loop 到 LINQ 查詢或 LINQ 方法。For a foreach loop to LINQ query or to LINQ method.
  • 您現在已新增對在 Azure Kubernetes Service 中執行之 ASP .NET Core 應用程式的支援。You now have added support for ASP .NET Core applications running in an Azure Kubernetes Service. 若要開始,請參閱 GitHub 上的此 docker 範例To get started, see this docker example over on GitHub.
  • 現在效能分析工具的 CPU 使用量工具支援 ASP.NET。ASP.NET is now supported in the CPU Usage tool of the Performance Profiler.
CPU Usage Tool in Performance Profiler
現在效能分析工具中的 CPU 使用量工具CPU Usage Tool in Performance Profiler
  • 您現在可以使用 [尋找所有參考] (Shift+F12) 與 CodeLens 來顯示來自 .NET Core 專案中之 Razor (.cshtml) 檔案的結果。You can now use Find All References (Shift-F12) and CodeLens to show results from Razor (.cshtml) files in .NET Core projects. 您接著可以瀏覽到相關 Razor 檔案中指出的程式碼。You can then navigate to the identified code in the relevant Razor files.
  • 我們已新增以 Windows 虛擬機器 (VM) 與 VM 擴展集上執行之 ASP .NET (Core 與 Desktop) 應用程式為目標的支援。We've added support for targeting ASP .NET (core and desktop) applications running on Windows Virtual Machines (VM) and VM Scale Sets.
Snapshot debugger target selection UI
快照偵錯工具目標選取範圍 UISnapshot Debugger Target Selection UI
  • 現在當您使用 FxCop 執行程式碼分析時會收到警告。You will now receive a warning when running code analysis using FxCop. 建議以後使用 .NET 編譯器分析器來執行程式碼分析。.NET Compiler analyzers are the recommended way to perform code analysis going forward. 深入了解移轉到 .NET 編譯器平台分析器Read more on migrating to .NET compiler platform analyzers.
  • 已不再提供可攜式類別庫 (PCL) 專案範本,而且預設不會安裝專案支援。Portable Class Library (PCL) project templates are no longer available, and project support will not be installed by default. 想要以多個平台為目標的新專案應該使用 .NET Standard 專案類型。New projects intended to target multiple platforms should use the .NET Standard project type. 需要 PCL 專案支援的客戶必須從 Visual Studio 安裝程式的 [個別元件] 索引標籤個別安裝該元件。Customers who require PCL project support must install the component separately from the Individual Components tab in the Visual Studio installer.
  • 已不再提供 "Project.CopyWebSite" 命令。The "Project.CopyWebSite" command is no longer available. 此功能只有在 .NET 上的「網站」專案類型中可用。This feature was only available on the "Web Site" project type for .NET. 它可讓您同步兩個網站,讓其上的每個檔案都有相同的版本。It provided the ability to synchronize two web sites so that they have the same version of each file. 在 Visual Studio 2019 中,您可以從 Visual Studio 外的遠端目的地複製檔案,然後開啟專案。In Visual Studio 2019, you can copy the files from the remote destination outside of Visual Studio and then open the project.
  • 已移除從遠端 FTP 位址開啟網站專案的能力。The ability to open a Web Site project from a remote FTP location has been removed. FTP 使用者可以從 Visual Studio 外的遠端目的地複製檔案、開啟專案並進行變更,然後使用「發佈到」功能將它們發佈回遠端 FTP 位置。FTP users can copy the files from the remote destination outside of Visual Studio, open the project and make changes, and then use publish to push them back to the remote FTP location.
  • ASP.NET 與 Web 工作負載已不會再安裝自訂 offeeScript 編輯體驗。The ASP.NET and Web workload no longer installs a custom CoffeeScript editing experience. Visual Studio 的 TextMate 套件組合提供可處理 CoffeeScript 的卓越體驗。Visual Studio's TextMate bundles provide a superior experience for working with CoffeeScript.
  • 編輯那些檔案時,目前由內建 CSSLint 與 CoffeeLint 複本產生的 CSS 與 CoffeeScript 錯誤再也不會自動呈現。CSS and CoffeeScript errors that are currently generated by built-in copies of CSSLint and CoffeeLint will no longer automatically surface when editing those files. 使用替代方法執行 Linter (例如 npm 或 Visual Studio 工作執行器總管)。Use an alternative method for running linters such as npm or the Visual Studio Task Runner Explorer.
  • Visual Studio 再也不會為 Knockout HTML 屬性提供 IntelliSense。Visual Studio no longer provides IntelliSense for Knockout HTML attributes. 在 Visual Studio 2019 中,您將必須輸入屬性。In Visual Studio 2019 you will need to type the attributes.
  • 已移除在 ASP.NET 專案中使用傳統 Chrome 偵錯工具來針對 JavaScript 進行偵錯的功能。The ability to use the Legacy Chrome debugger in ASP.NET projects for debugging JavaScript has been removed. 您可以繼續使用目前內建在 Visual Studio 中的 Chrome 偵錯工具。You can continue to use the current Chrome debugger built into Visual Studio.
  • 已移除在 ASP.NET 專案中使用 JavaScript 主控台功能的能力。The ability to use JavaScript Console functionality in ASP.NET projects has been removed. 建議客戶使用包含在他們慣用瀏覽器開發工具中的 [主控台]。We recommend that customers use Console included within their favorite browser devtools.

容器工具Container Tools

  • 我們新增了用於容器化及偵錯並經過簡化的單一專案體驗:We've added a streamlined single-project experience for containerizing and debugging:
    • ASP.NET Web 應用程式 (.NET Framework)ASP.NET Web Applications (.NET Framework)
    • 主控台應用程式 (.NET Core)Console Applications (.NET Core)
  • 我們為使用 Alpine 作為基礎映像的 ASP.NET Core 應用程式新增了對其偵錯的支援。We've added support for debugging ASP.NET Core Applications that use Alpine as a base image.
  • 我們新增了最新 ASP.NET 和 .NET Core 映像的支援。We've added support for the latest ASP.NET and .NET Core images.

.NET Core 工具.NET Core tools

.NET Core 3.0.NET Core 3.0

在此版本中,如果您安裝了 Preview SDK,您可以建立針對 .NET Core 3.0 的 ASP.NET Core、主控台和類別程式庫專案。With this release, you can create ASP.NET Core, Console, and Class Library projects targeting .NET Core 3.0 if you have the preview SDK installed.

如果您使用 Visual Studio RC,您也需要前往 [工具] > [選項] > [專案和方案] > [.NET Core],然後選取 [使用 .NET Core SDK 預覽核取方塊]。If you are using Visual Studio RC, you need to also go to Tools > Options > Projects and Solutions > .NET Core and check the Use previews of the .NET Core SDKs checkbox. 如果您使用 Visual Studio Preview,則不需要執行這項操作。If you are using Visual Studio Preview, you do not need to do this. 您可以在 .NET Core tooling update for Visual Studio 2017 version 15.9 (Visual Studio 2017 15.9 版的 .NET Core 工具更新) 中閱讀此設定及其行為的詳細資訊。You can read more about this setting and its behavior in .NET Core tooling update for Visual Studio 2017 version 15.9.

您也可以使用 "dotnet new" 命令,為 .NET Core 3.0 建立 Windows Forms 或 WPF 專案。You can also create Windows Forms or WPF projects for .NET Core 3.0 with the "dotnet new" command. 接著即可以在 Visual Studio 2019 中開啟這些專案。These projects can then be opened in Visual Studio 2019.

新功能New features

從這個版本開始,我們會讓 .NET SDK 樣式專案的專案檔變成 Visual Studio 中的第一級檔案類型Starting with this release, we are making project files for .NET SDK-style projects a first-class file type in Visual Studio. 現在支援下列功能:The following is now supported:

  • 按兩下專案節點開啟專案檔Double-click a project node to open the project file
  • 按一下專案節點在 [預覽] 索引標籤中開啟專案檔Single-click the project node to open the project file in a Preview tab
  • 使用 [移至全部] 依名稱尋找專案檔 (ctrl + T)Find a project file by name with Go to All (ctrl + T)
  • 現在可使用 [檔案中尋找] 搜尋專案檔中的 MSBuild 元素MSBuild elements in a project file now are searchable with Find in Files
  • 若出發了專案撰寫錯誤,就會從錯誤清單開啟Opening from the error list if a project authoring error is triggered

此外,.NET SDK 樣式的專案現在會使用新的整合式主控台,以在主控台應用程式使用 F5ctrl + F5Additionally, .NET SDK-style projects will now use the new Integrated Console experience for F5 and ctrl + F5 on console apps. 這使得從 Visual Studio 啟動主控台應用程式時的體驗達成一致:This unifies the experience when launching console applications from Visual Studio:

  • 若是 F5,主控台視窗不會在應用程式完成執行時自動關閉。For F5, the console window will not automatically close when the app is finished executing. 您不必再將 Console.Read() 呼叫新增到您的主控台應用程式。You no longer need to add Console.Read() calls to your console apps.
  • 若是 ctrl + F5,主控台視窗會在應用程式的後續執行中重複使用。For ctrl + F5, the console window will be re-used in subsequent runs of your app. 您不必再關閉主控台視窗的負載。You no longer need to close loads of console windows.

在新的主控台視窗開啟時按任意鍵,或選取 [工具] > [選項] > [偵錯停止時,自動關閉主控台] 下的選項,即可自動關閉。The new console window can be closed automatically by pressing a key when it is open or by selecting the option under Tools > Options > Automatically close the console when debugging stops.

已將授權運算式和授權檔案的支援新增到專案屬性頁面。Support for License Expressions and License Files has now been added to project property pages. 這是配合 NuGet 中淘汰 licenseUrl 的變更。This aligns with changes to deprecate licenseUrl in NuGet.

效能改善Performance improvements
  • 已大幅改善大型方案的延展性,讓您能使用比之前更大的 .NET Core 方案。The scalability of large solutions has been significantly improved, allowing the use of much larger .NET Core solutions than before.
  • 已大幅減少大型專案的方案載入時間,且載入時的 CPU 和記憶體也減少了。Solution load times for large projects have been significantly reduced, as has the CPU and memory usage when loading them.
非 .NET Core 專案的功能同位對照Feature parity with non-.NET Core projects

您可以在 16.016.0 Preview 216.0 Preview 316.0 Preview 4 里程碑中找到問題和提取要求的完整清單。You can find a full list of issues and pull requests in the 16.0, 16.0 Preview 2, 16.0 Preview 3, and 16.0 Preview 4 milestones.

.NET 生產力.NET Productivity

  • .NET 重構和程式碼修正:.NET refactorings and codefixes:

    • 同步命名空間和資料夾名稱Sync Namespace and Folder Name
    • 含有對話方塊選項的成員上移重構Pull members up refactoring with dialog options
    Pull members up refactoring with dialog options
    成員上移對話方塊Pull Members Up dialog
    • 包裝/縮排/對齊參數/引數的清單Wrap/indent/align lists of parameters/arguments
    • 將匿名型別轉換為元組Convert anonymous type to tuple
    • 對 Lambda 使用運算式/區塊主體Use expression/block body for lambda
    • 轉換條件運算式和邏輯運算Invert conditional expressions and logical operations
    • 自動在遇到 “/” 時關閉區塊註解Automatically close block comment on “/”
    • 轉換為複合指派Convert to compound assignment
    • 修正隱含型別變數不可為常數的情況Fix Implicitly-typed variables cannot be constant
    • 自動修正程式可在鍵入插入逐字字串時,以 $@" 取代 @$"Auto-fixer to replace @$" with $@" when typing interpolated verbatim string
    • 完成 #nullable enable|disableCompletion for #nullable enable|disable
    • 修正未使用的運算式值和參數Fix for unused expression values and parameters
    • 修正可讓擷取介面保留在相同檔案中Fix for allowing Extract Interface to remain in the same file
  • 依 R/W 為參考分類。Categorize references by Read/Write.

  • 為 csharp_prefer_braces 新增 Editorconfig when_multiline 選項。Add Editorconfig when_multiline option for csharp_prefer_braces.

  • .NET Compiler Platform SDK (又名 Roslyn) 提供新的分類色彩。New classification colors are available from the .NET Compiler Platform SDK (aka Roslyn). 新的預設色彩與 Visual Studio Code 色彩類似,會逐步推出。您可在 [工具] > [選項] > [環境] > [字型和色彩] 中調整這些色彩,或在 [環境] > [預覽功能] 中取消選取 [使用增強色彩] 核取方塊予以關閉。New default colors, similar to the Visual Studio Code colors, are gradually being rolled out. You can adjust these colors in Tools > Options > Environment > Fonts and Colors or turn them off in Environment > Preview Features by unchecking the Use enhanced colors check box. 歡迎提供意見反應,讓我們知道這項變更如何影響您工作流程。We’d appreciate hearing feedback on how this change affects your workflow.

New Roslyn classification colors
新的 Roslyn 分類色彩New Roslyn classification colors

ASP.NET 專案中的 JavaScript 偵錯JavaScript Debugging in ASP.NET projects

  • 若您使用 ASP.NET 專案的 [瀏覽方式...] 功能表,以自訂引數新增了 Google Chrome 瀏覽器,Visual Studio 現在會在偵錯開始時,為您的應用程式啟用 JavaScript 偵錯。If you have added a new Google Chrome browser with custom arguments using the "Browse with..." menu for your ASP.NET project, Visual Studio will now enable JavaScript debugging for your application when debugging is started. 您的 Google Chrome 自訂啟動引數會在啟動 Chrome 時套用。Your custom launch arguments for Google Chrome will be applied when launching Chrome.
Adding Google Chrome with Custom arguments using 'Browse with'
使用 [瀏覽方式...] 以自訂引數新增 Google ChromeAdding Google Chrome with Custom arguments using 'Browse with...'
注意:除非您以引數形式提供您的資料目錄路徑,否則根據預設, Visual Studio 會使用與一般 Chrome 執行個體不同的資料目錄來啟動 Chrome。 Note: Visual Studio, by default, will launch Chrome using a different data directory than your regular Chrome instance unless you provide the path to your data directory as an argument. 因此,如果您要讓任何延伸模組在使用這個 Chrome 執行個體的時候可供使用,就必須在一開始先加以安裝。As a result, if you require any extensions to be available when using this Chrome instance, you will need to install them the first time.

ASP.NET & Azure Functions 工具ASP.NET & Azure Functions tooling

  • Visual Studio 2019 帶來了全新的專案建立體驗。Visual Studio 2019 comes with a new experience for creating new projects. 特別是在建立新的 ASP.NET 專案時,Visual Studio 會提供能呈現 ASP.NET 特定選擇的額外對話方塊。When creating new ASP.NET projects specifically, Visual Studio offers additional dialogs that surface ASP.NET specific choices. 這些額外對話方塊已經過更新,能符合體驗中其他部分的視覺效果樣式。These additional dialogs have been updated to match the visual style of the rest of the experience.
  • 直到現在,在 Visual Studio 中進行的認證發行都會經過加密,並儲存到發行設定檔使用者檔案內,使您不必每次發行應用程式都需要重新輸入它們。For a while now, publish credentials in Visual Studio are encrypted and stored in the publish profile user file so you don't have to re-enter them every time you publish your application. 因為使用者檔案較可能包含祕密和不應共用的個人資訊,所以一般會排除在原始檔控制之外。User files in general are excluded from source control by default because they are likely to contain secret and/or personal information that should not be shared. 目前為止,如果有 Azure Functions 專案的發行設定檔簽入了原始檔控制,但使用者檔案卻沒有簽入的話,就會失去發行認證,並使得發行設定檔無法受到重複使用。Up until now, if a publish profile for an Azure Functions project was checked into source control but the user file was not, the publish credentials were missing and the publish profile could not be re-used. 現在,我們允許編輯認證和建立新使用者檔案,以便發行設定檔能受到重複使用。Now, we allow for the credentials to be edited and a new user file to be created so that the publish profile can be re-used.

效能精靈Performance Wizard

在 Visual Studio 2019 中,「效能精靈」中提供的分析體驗已移至「效能分析工具」。In Visual Studio 2019, the profiling experiences that were available in the Performance Wizard have been moved to the Performance Profiler. 您可以找到可用來取樣的「CPU 使用量工具」,並在「效能分析工具」中的檢測工具中找到檢測。You can find the CPU Usage Tool for sampling, and instrumentation in the Instrumentation tool in the Performance Profiler. 由於此變更,再也不需要「效能精靈」,因此 Visual Studio 2019 已將它移除。With this change the Performance Wizard is no longer needed and has been removed from Visual Studio 2019. 此外,已移除 VS 效能命令列工具中的取樣選項,將在未來的預覽版中推出替代命令列工具。Additionally, the sampling option in the VS Performance command line tools have been removed, a replacement command line tool will be released in an upcoming preview.

測試工具Test Tools

  • 您可以以滑鼠右鍵按一下 [方案總管] 中的測試、測試類別或測試專案以執行測試或針對測試進行偵錯。You can now right-click on tests, test classes or test projects in the Solution Explorer to run or debug tests.
  • 測試回合現在會自動偵測專案屬性中設定的是哪個處理器架構。Test runs now auto-detect what processor architecture is set in the project properties.
  • OSS UI 測試工具 (例如 Selenium 與 Appium) 已獲得動力且非常受社群歡迎。OSS UI test tools such as Selenium and Appium have gained momentum and have a strong community backing. 因為這些架構已成為產業標準,我們已將用於自動化 UI 驅動功能測試的「自動程式化 UI 測試」設定為過時。Because these frameworks have become industry standards, we deprecated Coded UI test for automated UI-driven functional testing. Visual Studio 2019 將會是具有「自動程式化 UI 測試」功能的最終 Visual Studio 版本。Visual Studio 2019 will be the final version of Visual Studio with Coded UI test features. 我們建議您使用 Selenium 測試 Web 應用程式,而使用 Appium 與 WinAppDriver 測試傳統型與 UWP 應用程式。We recommend using Selenium for testing web-applications and Appium with WinAppDriver for testing desktop and UWP apps.
  • Visual Studio 2019 將會是具有負載測試功能的最終 Visual Studio 版本。Visual Studio 2019 will be the last version of Visual Studio with load test features. 針對需要負載測試工具的客戶,我們建議使用替代的負載測試工具,例如 Apache JMeter、Akamai CloudTest、Blazemeter。For customers requiring load testing tools, we recommend using alternate load testing tools such as Apache JMeter, Akamai CloudTest, Blazemeter.
  • 在 Visual Studio 2019 中,會移除一些先前標記為公用,但從未正式記載的測試視窗 API。In Visual Studio 2019, some test window APIs that were previously marked public but were never officially documented have been removed. 它們在 Visual Studio 2017 中標示為「已過時」,可為延伸模組維護人員提供初期警告。They were marked deprecated in Visual Studio 2017 to give extension maintainers an early warning. 據我們所知,很少有延伸模組相依於這些 API。To our knowledge, very few extensions have taken a dependency on these APIs. 這些 APIs 包括 IGroupByProvider、IGroupByProvider、KeyComparer、ISearchFilter、ISearchFilterToken、ISearchToken 與 SearchFilterTokenType。These APIs include IGroupByProvider, IGroupByProvider, KeyComparer, ISearchFilter, ISearchFilterToken, ISearchToken and SearchFilterTokenType. 如果此變更會影響您的延伸模組,請在開發人員社群提交問題讓我們知道。If this change affects your extension, please let us know by submitting an issue on Developer Community.

Visual Studio Kubernetes ToolsVisual Studio Kubernetes Tools

Visual Studio Kubernetes Tools 原先以 Visual Studio 2017 的獨立延伸模組形式提供,現在則整合到 Visual Studio 2019 的 Azure 開發 工作負載中。The Visual Studio Kubernetes Tools, which were previously available as a separate extension for Visual Studio 2017, are now integrated into the Azure development workload in Visual Studio 2019.

在新專案新增 Kubernetes 支援Adding Kubernetes support to a new project

若要在新專案新增 Kubernetes 支援,請開啟 Visual Studio,然後選取 [建立新專案] 選項。To add Kubernetes support to a new project, open Visual Studio and select the Create a new project option. 在 [建立新專案] 視窗中搜尋 Kubernetes,然後選取 [適用於 Kubernetes 的容器應用程式] 專案範本。In the Create a new project window, search for Kubernetes and select the Container Application for Kubernetes project template.

Creating a Container Application for Kubernetes
建立適用於 Kubernetes 的容器應用程式Creating a Container Application for Kubernetes

按一下 [下一步],然後輸入專案名稱、位置和解決方案名稱。Click Next and enter a project name, location, and solution name. 接著按一下 [ 建立]。Then, click Create. 選取您要用於專案的 ASP.NET Core 應用程式範本,然後按一下 [確定]。Select the ASP.NET Core application template you want to use for your project and click OK. Visual Studio 會自動建立 Docker 檔案和 Helm 圖表,可供您用來建置新的應用程式並部署到 Kubernetes 叢集。Visual Studio will automatically create a Dockerfile and Helm chart that you can use to build and deploy your new application to a Kubernetes cluster. 如有需要,您可以修改這些成品。You can modify these artifacts as needed.

在現有的專案新增 Kubernetes 支援Adding Kubernetes support to an existing project

您可在現有的 ASP.NET Core 應用程式新增 Kubernetes 支援。You can also add support for Kubernetes to an existing ASP.NET Core application. 若要這樣做,請在 Visual Studio 2019 中開啟專案。To do this, open the project in Visual Studio 2019. 在方案總管中,以滑鼠右鍵按一下專案,指向 [新增],然後按一下 [容器協調器支援]。In Solution Explorer, right click on the project, point to Add, and click Container Orchestrator Support.

Adding container orchestrator support
新增容器協調器支援Adding container orchestrator support

在 [容器協調器支援] 對話方塊中,選擇 [Kubernetes/Helm],然後按一下 [確定]。In the Add Container Orchestrator Support dialog, choose Kubernetes/Helm and click OK. Visual Studio 會自動建立 Docker 檔案和 Helm 圖表 (在名為 charts 的資料夾中),可供您用來建置應用程式並部署到 Kubernetes 叢集。Visual Studio will automatically create a Dockerfile and Helm chart (in a folder named charts) that you can use to build and deploy your application to a Kubernetes cluster. 如果這些成品有其中一個已經就緒,則不會覆寫該成品。If either of these artifacts are already in place, they will not be overwritten. 如有需要,您可以修改這些成品。You can modify these artifacts as needed.

建立可公開存取的端點Creating a publicly accessible endpoint

當您在新的或現有專案新增 Kubernetes 支援時,Visual Studio 會詢問您是否想要為應用程式建立可公開存取的端點。When you add Kubernetes support to a new or existing project, Visual Studio will ask you if you want to create a publicly accessible endpoint for your application.

Publicly accessible endpoint prompt
可公開存取端點的提示Publicly accessible endpoint prompt

若您按一下 [是],Visual Studio 會為您的應用程式設定 Helm 圖表,以在應用程式部署到 Kubernetes 叢集時,建立 Kubernetes 輸入物件。If you click Yes, Visual Studio will configure the Helm chart for your application to create a Kubernetes ingress object when the application is deployed to a Kubernetes cluster. 您可以藉由修改 Helm 圖表,隨時變更這個選項。You can change this option at any time by modifying the Helm chart.

在 Azure Kubernetes Service 中對應用程式進行偵錯Debugging your application in Azure Kubernetes Service

當您在新的或現有專案中新增 Kubernetes 支援後,就可以在即時的 Azure Kubernetes Service (AKS) 叢集中使用稱為 Azure Dev Spaces 的功能,輕鬆建置、執行應用程式及對其偵錯。Once you have added Kubernetes support to a new or existing project, you can easily build, run, and debug your application in a live Azure Kubernetes Service (AKS) cluster, using a feature called Azure Dev Spaces. 要在實際 Kubernetes 叢集的內容中測試專案,或要對屬於更大應用程式中的服務偵錯時,這會很實用,而且不需要在本機複寫整個應用程式。This is useful for testing your project in the context of an actual Kubernetes cluster or for debugging a service that is part of a much larger application without having to replicate the entire application locally. Azure Dev Spaces 也包含可讓開發團隊共用 AKS 叢集的功能。Azure Dev Spaces also includes functionality that allows your development team to share an AKS cluster. 如需 Azure Dev Spaces 的詳細資訊,請參閱 Azure Dev Spaces 文件For more information on Azure Dev Spaces, see the Azure Dev Spaces documentation. 若要開始使用,請確認已在 Visual Studio 中選取 Azure Dev Spaces 作為偵錯啟動目標。To get started, ensure that Azure Dev Spaces is selected as the debug launch target in Visual Studio.

Selecting Azure Dev Spaces as debug launch target
選取 Azure Dev Spaces 作為偵錯啟動目標Selecting Azure Dev Spaces as debug launch target

在 Dev Spaces 中初次啟動專案之前,請先設定您要使用的 Azure 訂用帳戶和 AKS 叢集。Before launching your project in Dev Spaces for the first time, configure the Azure subscription and AKS cluster that you wish to use. 也請選取您要在其中執行專案的空間。Also, select the space where you wish to run the project.

Configuring Azure Dev Spaces
設定 Azure Dev SpacesConfiguring Azure Dev Spaces

通常,您的團隊會在 [預設] 空間中執行整個應用程式的最新穩定版本。Typically, your team runs the latest stable version of the entire application in the default space. 之後,您會在 [預設] 空間的子空間中執行您處理的服務版本。Then, you run your version of the service you are working on in a child space of the default space. 現在則不需要在子空間執行其他服務;Dev Spaces 會自動將呼叫從您的服務路由到在 [預設] 中執行的服務穩定版本。There is now no need to run the other services in the child space; Dev Spaces automatically routes calls from your service to the stable versions of the services running in default. 如需如何進行這項設定的詳細資訊,請參閱 Azure Dev Spaces 文件中的團隊開發教學課程。For more information on how to set this up, see the team development tutorials in the Azure Dev Spaces documentation. 在您選取了正確的訂用帳戶、叢集和空間之後,請按一下 [確定] 繼續進行 Dev Spaces 設定。Once you have selected the correct subscription, cluster, and space, click OK to proceed with the Dev Spaces configuration. 若您選取的叢集尚無已建立關聯的 Dev Spaces 控制器,請在下列對話方塊中按一下 [確定],以自動建立一個控制器。If you select a cluster that does not already have an associated Dev Spaces controller, click OK in the following dialog box to create one automatically.

Enable Dev Spaces dialog
[啟用 Dev Spaces] 對話方塊Enable Dev Spaces dialog

控制器建立過程約需 2 分鐘。Controller creation takes about 2 minutes. 您可以按一下 Visual Studio 視窗左下角的 [背景工作] 按鈕查看狀態。You can click on the Background Tasks button in the lower left corner of the Visual Studio window to see the status.

Azure Dev Spaces controller creation status via Background Tasks
[背景工作] 中的 Azure Dev Spaces 控制器建立狀態Azure Dev Spaces controller creation status via Background Tasks

當您的 Dev Spaces 控制器就緒時,就按 F5 或按一下工具列上的 [Azure Dev Spaces] 偵錯按鈕,以在 AKS 中對您的專案偵錯。Once you have a Dev Spaces controller ready to go, press F5 or click the Azure Dev Spaces debug button on the toolbar to debug your project in AKS.

Azure Dev Spaces debug button
Azure Dev Spaces 偵錯按鈕Azure Dev Spaces debug button

Dev Spaces 會將您的程式碼同步到 Azure、建置包含程式碼的容器映像,並使用專案中定義的 Helm 圖表將其部署到 AKS 叢集。Dev Spaces will synchronize your code to Azure, build a container image containing your code, and deploy it to your AKS cluster using the Helm chart defined in your project. Visual Studio 會對執行於叢集的服務建立遠端偵錯連線,讓您可以與其互動,方式就如同對執行於本機的服務偵錯。Visual Studio will open up a remote debug connection to the service running in the cluster so you can interact with it just as you would when debugging a service running locally.

使用 Xamarin 的行動裝置應用程式開發Mobile Development with Xamarin

此版本包括工作負載大小與 Android 建置效能可靠性改良,以及 Xamarin.Android  與 Xamarin.Forms 生產力加強功能。This release includes improvements to workload size and Android build performance and reliability, as well as enhancements for Xamarin.Android and Xamarin.Forms productivity.

  • Xamarin 負載現在只有 7.69GB,相較於 Visual Studio 2017 15.9 版減少 2 倍,而相較於 15.7 版減少 3 倍。The Xamarin workload is now just 7.69GB, a 2x reduction from Visual Studio 2017 version 15.9 and a 3x improvement over version 15.7.
  • IntelliCode 延伸模組現在支援 Xamarin.Forms XAML。The IntelliCode extension now supports Xamarin.Forms XAML.
[檔案] > [新增專案]File > New Project

我們進行的效能改進,目的是縮短建立新 Xamarin 專案的時間,讓您可以更快開始建置應用程式。We made performance improvements aimed at reducing the time it takes to create a new Xamarin project so you can start building your apps faster. 我們現在也在工作負載安裝過程中包含了範本所使用的 NuGet 套件,以縮短套建還原時間,尤其是在低頻寬或離線的情況下。We also now include the NuGet packages used by the templates as part of the workload installation in order to reduce package restore time, especially in low bandwidth or offline situations. 在某些情況下,這些功能改進讓新 Xamarin 專案完全載入及還原的時間減少了近 50%。These improvements reduce the time for a new Xamarin project to be completely loaded and restored by almost 50% in some cases.

New Xamarin project comparison gif
在 Visual Studio 15.9 版 (左) 和 Visual Studio 2019 (右) 中建立新 Xamarin 專案Creating a new Xamarin project in Visual Studio version 15.9 (left) and Visual Studio 2019 (right)
建置進度列指示器Build progress indicator

您現在可在建置專案時,看到更詳細的建置進度資訊。You can now see more detailed build progress information when building your projects. 在建置期間按一下左下角的背景工作圖示,會顯示目前執行的建置目標。Clicking the background tasks icon in the bottom left corner during a build will display the current build target that is running. 這可用於判斷是否建置仍在執行,但目標花費了很長的時間才完成。This can be useful for determining if the build is still running but a target is taking a long time to complete.

Xamarin build progress indicator
Xamarin 建置進度列指示器Xamarin build progress indicator
Xamarin.Forms Previewer 的基本預覽模式Xamarin.Forms Previewer's Basic Preview mode

您不再需要為 Xamarin.Forms XAML Previewer 建置您的專案,以顯示您的程式碼預覽!You no longer have to build your project for the Xamarin.Forms XAML Previewer to show you a preview of your code! 如果您的 XAML 檔案中有自訂控制項,您可以需要建置專案才能預覽它們,或選擇將它們加入設計階段轉譯(機器翻譯)。If you have custom controls in your XAML file, you might need to build your project to preview those, or opt them into design time rendering.

Xamarin.Forms Previewer 裝置下拉式清單Xamarin.Forms Previewer device drop-down

您現在可以使用我們新的裝置下拉式清單,在不同的 Android 和 iOS 裝置間切換來預覽您的 Xamarin.Forms XAML。You can now swap between different Android and iOS devices to preview your Xamarin.Forms XAML on using our new device drop-down menu.

Xamarin.Forms Device Drop-Down
Xamarin.Forms 裝置下拉式清單Xamarin.Forms Device Drop-Down
Xamarin.Forms 屬性面板Xamarin.Forms Property Panel

您現在可以在屬性面板中編輯 Xamarin.Forms 控制項、儲存格與版面配置的最常見屬性,並在看到那些變更立即反映在您的 XAML 中。You can now edit the most common attributes of Xamarin.Forms controls, cells, and layouts in a property panel and see those changes reflected immediately in your XAML.

Xamarin.Forms Property Panel
Xamarin.Forms 屬性面板Xamarin.Forms Property Panel
Xamarin.Forms Shell 範本Xamarin.Forms Shell template

我們更新了 Xamarin.Forms 範本,以使用最新 Xamarin.Forms 版本 (英文),並為 Xamarin.Forms Shell 應用程式新增了範本選項。We updated the Xamarin.Forms templates to use the latest Xamarin.Forms release and also added a new template option for a Xamarin.Forms Shell app. Shell 的目的是降低應用程式的複雜度,同時提高開發人員生產力,並著重於轉譯速度及記憶體使用量。Shell aims to reduce the complexity of apps while increasing developer productivity and focusing on rendering speed and memory consumption. 這個範本會提供您適用於 Android 和 iOS 的已啟動 Shell 應用程式。This template gives you a bootstrapped Shell app for Android and iOS.

Android 建置效能與可靠性Android Build performance and reliability

在 Visual Studio 2017 15.9 版與 Visual Studio for Mac 7.7 中,我們以進行初始建置效能與建置正確性改良In Visual Studio 2017 version 15.9 and Visual Studio for Mac 7.7, we made initial build performance and build correctness improvements. 在 Visual Studio 2019 與 Visual Studio for Mac 7.8 中,我們讓建置及部署速度加快了。In Visual Studio 2019 and Visual Studio for Mac 7.8, we made building and deploying even faster.

Android Build Performance
*Android 建置速度現在比拿一杯咖啡還快**Android Build Now Faster than Grabbing a Cup of Coffee*
  • 您現在將會使用 Android 新一代的封裝工具。You will now make use of Android's next generation packaging tooling. 若要啟用這項功能,請在您專案的 .csproj 中新增 MSBuild 旗標:To enable this feature, add an MSBuild flag in your project's .csproj:
    • aapt2 會將 Android 封裝分為兩個步驟:編譯及連結。aapt2 divides Android packaging into two steps: Compile and Link. 這樣可改進累加建置效能,並提供更簡單的錯誤報告功能。This improves performance for incremental builds and provides earlier error reporting. 例如,若單一檔案中有變更,您只需要重新編譯該檔案。For example, if there are changes in a single file, you only need to recompile that file. <AndroidUseAapt2>True</AndroidUseAapt2>
  • 在您的專案中啟用這項工具,您就能加強建置階段與執行階段的效能。By enabling this tool in your projects, you enable enhanced performance at both build time and runtime. 如需這些屬性的詳細資訊,請參閱 Xamarin.Android 中的建置程序文件。For more details on these properties, see our documentation on the Build Process in Xamarin.Android.
Android Emulator 改善Android Emulator improvements

在 Visual Studio 2019 中,Android 模擬器映像更容易建立了。In Visual Studio 2019, Android emulator images are easier to create. 我們也繼續與 Windows 小組在 Windows 10 2018 10 月更新 1809 版中合作,以改進在 Hyper-V 上執行的 Android 模擬器效能。We've also continued to work with the Windows team in the Windows 10 October 2018 Update, version 1809, to improve the performance of the Android emulator when running on Hyper-V.

  • 新使用者只要按一下執行圖示就可以建立其第一個映像。New users can create their first image by simply pressing the run icon.
  • 我們的模擬器取得體驗會自動判斷您的環境的最佳設定,並利用硬體加速 (透過 Intel HAXM 或 Hyper-V) 功能,而且依預設可快速開機。Our emulator acquisition experience automatically determines the best configuration for your setup and takes advantage of hardware acceleration (with Intel HAXM or Hyper-V) and quick boot by default.
  • 當您想要建立另一個映像時,您可以從下拉式清單選取 [建立 Android Emulator] 以開啟 Android Device Manager。When you want to create another image, you can select Create Android Emulator from the dropdown to open the Android Device Manager.
透過 Xamarin.Android 中組建的功能改進,縮短您的建置時間Speed up your build times with our improvements for build in Xamarin.Android

我們發行了一組初始建置效能改善We have released a set of initial build performance improvements. 時至今日,Xamarin.Android 9.1.1+ 與前一個版本相較之下,建置效能已有顯著提升。As of today, Xamarin.Android 9.1.1+ includes significant build performance improvements in comparison to the previous release. 請參閱我們的 Xamarin.Android 15.9 與16.0 建置效能比較以取得詳細資訊。Check out our Xamarin.Android 15.9 vs. 16.0 build performance comparison for more details.

Xamarin.Android 增強的快速部署Enhanced Fast Deployment for Xamarin.Android

快速部署到目前為止,提供了更快的累加式部署時間,方式是在任何資產、資源、應用程式內封裝的共用原生程式庫或繼承自 Java.Lang.Object 的使用者定義類別均未進行過變更的情況下,跳過重建或重新部署 Android 套件 (.apk 檔案) 的過程。Fast Deployment has up until now provided faster incremental deployment times by skipping over rebuilding or redeploying the Android package (.apk file) in scenarios where no changes have been made to any assets, resources, shared native libraries packaged within the app, or user-defined classes that inherit from Java.Lang.Object. 增強的快速部署拓展了快速部署的支援,讓原生程式庫和繼承自 Java.Lang.Object的類別均涵蓋在內。Enhanced Fast Deployment expands support for fast deployment to cover both shared native libraries and classes that inherit from Java.Lang.Object. 在某些情況下,使用這些增強功能的快速部署組建只需要產生新的 .apk 檔案,例如 AndroidManifest.xml 檔案因為新增 Android.App.ApplicationActivity 子類別而變更。Fast deployment builds that use these new enhancements will only need to generate a new .apk file in a limited number of scenarios, such as when the AndroidManifest.xml file changes due to addition of a new Android.App.Application or Activity subclass. 這些增強功能 在目前預覽中預設是未啟用These enhancements are not yet enabled by default in the current preview. 若要加以啟用,請在 .csproj 檔案中將 $(AndroidFastDeploymentType) MSBuild 屬性設為 Assemblies:DexesTo enable them, set the $(AndroidFastDeploymentType) MSBuild property to Assemblies:Dexes in your .csproj file:

<PropertyGroup> 
  <AndroidFastDeploymentType>Assemblies:Dexes</AndroidFastDeploymentType> 
</PropertyGroup>
Xamarin.Android 中的新一代 Dex 編譯器 (d8) 與程式碼壓縮器 (r8) 支援Next-generation Dex Compiler(d8) and Code Shrinker(r8) support in Xamarin.Android

Xamarin.Android 現在支援最新的 Android dex 編譯器 (d8) 和程式碼壓縮器 (r8)。Xamarin.Android now supports the latest Android dex compiler(d8) and code shrinker (r8). 若要啟用這些功能,請在 .csproj 檔案中將 $(AndroidDexTool)$(AndroidLinkTool) MSBuild 屬性分別設為 d8r8To enable these features, set the $(AndroidDexTool) and $(AndroidLinkTool) MSBuild property to d8 and r8 respectfully in your .csproj file

  • d8 是新一代的 dex 編譯器,執行速度更快,能產生較小的 .dex 檔案,且執行階段效能更棒。d8 is a next-generation dex compiler that runs faster and produces smaller .dex files with better runtime performance.
<PropertyGroup> 
  <AndroidDexTool>d8</AndroidDexTool>
</PropertyGroup>
  • r8 是用於壓縮及縮製的工具,可以將 Java 位元組程式碼轉換為最佳化的 dex 程式碼,因此您已不再需要 ProGuard。r8 is a new tool for shrinking and minification that converts Java bytecode to optimized dex code that replaces the need for ProGuard.
<PropertyGroup> 
  <AndroidLinkTool>r8</AndroidLinkTool>
</PropertyGroup>

如需 d8 和 r8 的詳細資料,請參閱文件For more details on d8 and r8, check out our documentation.

Xamarin Android Designer 加強功能Xamarin.Android Designer enhancements

我們已經為「分割檢視」中的互動提供一些生產力加強功能。We have made a number of productivity enhancements to the interactions in Split View.

  • 直接從工具箱拖放到原始碼編輯器,以協助快速設計您的 Android 版面配置架構。Drag and drop directly from the toolbox to the source editor to help quickly scaffold your Android layouts.
Android Designer Toolbox to Source Editor
  • 在原始檔編輯器中直接從其 XML 定義 span 選取元素。Select elements directly from their XML definition span in the source editor. 我們透過將插入點位置與對應的 Android 檢視同步以實作此功能,讓您直接從編輯器的屬性面板快速存取元素的屬性。We implemented this by synchronizing the caret position with the corresponding Android view, allowing you to quickly access an element's properties in the property panel right from the editor.
Android Designer Source Editor to Property Editor
  • 使用內嵌色彩預覽您的 XML 程式碼,就可以看到您的控制項中使用哪些色彩。Use an inline color preview to your XML code so you can see what colors are being used in your controls.
Android Designer Color Preview
  • 將滑鼠游標停在值上以深入檢視其資訊,例如它其定義位置或色彩的十六進位值為何,來使用我們的快速資訊功能。Use our quick info feature by hovering over a value to find out more about it, such as where it's defined or what the hexadecimal value for the color is.
Android Designer Quick Info
*快速資訊運作**Quick Info in Action*
初步支援限制式配置的 Xamarin.Android Designer 功能改進Xamarin.Android Designer improvements with initial support for constraint layouts

我們已開始著手改善 Android Designer 的啟動速度。We’ve begun an effort to improve startup speed of the Android Designer. 在這個過程中,我們也改善了設計工具在載入時提供的傳訊。As part of this effort, we have also improved the messaging that the designer provides while it is loading.

Android Designer Output

除了這些功能改進以外,Android Designer 現在原生支援 Android Pie (9.0) 並提供 ConstraintLayout 屬性的自動完成。Alongside these improvements, the Android Designer now natively supports Android Pie (9.0) and provides autocompletion for ConstraintLayout attributes.

透過 Xamarin.Android Designer 取得更完善的 XML IntelliSense 與註解最佳化Get better XML IntelliSense and Commenting optimizations with the Xamarin.Android Designer

在使用 IntelliSense 將 Widget 新增到配置時,現在會提供完整的程式碼片段體驗,這樣從一開始就可以提供必要屬性。When using IntelliSense to add a widget to a layout, a full snippet experience is now provided so that required attributes can be supplied from the start. 我們為 Android XML 配置新增了智慧註解與取消註解。We have added smart commenting and uncommenting for Android XML layouts.

在 Android 資源檔和 AndroidManifest.xml 中使用移至定義和 XML IntelliSense 以提高生產力Be more productive by using Go-To-Definition and use XML IntelliSense within Android resource files and AndroidManifest.xml

您現在可在資源 URL 上使用 Ctrl + 按一下,瀏覽到定義了該 URL 的檔案或程式行。You can now Ctrl + Click on resource URLs to navigate to the file or line where they are defined.

Android Designer Go-To-Definition

除了配置 (色彩、字串、可繪製資源、功能表、Android 資訊清單等) 之外,現在支援其他 Android XML 檔案使用 IntelliSense/自動完成。IntelliSense/Autocompletion is now supported for other Android XML files other than layouts (colors, strings, drawables, menu, Android manifest, etc.).

通用 Windows 平台Universal Windows Platform

  • IntelliCode 延伸模組現在支援 XAML。The IntelliCode extension now supports XAML.
  • 為降低 Visual Studio 安裝複雜度與大小,已從 Visual Studio 安裝移除 Windows Phone 模擬器。To reduce Visual Studio setup complexity and size, Windows Phone emulators have been removed from Visual Studio installation. 您現在將必須手動下載模擬器。You will now need to download the emulators manually.
  • 已移除 Windows 10 Fall Creators Update (組建 16299) 之前以 Windows 10 SDK 為目標之 UWP 應用程式的 XAML 設計階段工具。XAML design time tooling for UWP apps targeting Windows 10 SDKs before the Windows 10 Fall Creators Update (build 16299) has been removed. 將您的應用程式的目標重新設定為 Windows 10 1709 版或更新版本以使用 XAML 設計工具或使用 XAML 編輯器。Retarget your applications to Windows 10 version 1709 or higher to use the XAML Designer, or use the XAML editor.
  • 已不再支援使用 project.json 來定義 NuGet 相依性的 UWP 測試專案。UWP test projects using project.json to define NuGet dependencies are no longer supported. 您必須升級您的專案以使用新的 PackageReference 格式。You must upgrade your project to use the new PackageReference format.
  • Visual Studio 2019 中已不再支援 UWP JavaScript 應用程式。UWP JavaScript apps are no longer supported in Visual Studio 2019. 您無法建立或開啟 JavaScript UWP 專案 (具有 jsproj 副檔名的檔案)。You cannot create or open JavaScript UWP projects (files with extension jsproj). 您可以透過我們的建立可在 Windows 上正常運作之 Progressive Web App (PWA) 的文件。You can learn more via our documentation on creating Progressive Web Apps (PWAs) that run well on Windows.
  • 您可繼續如往常般附加到 JavaScript UWP 應用程式,不過已無法在 Visual Studio 2019 中使用 JavaScript 分析工具 (網路、CPU 及記憶體分析工具)。You can continue to attach to JavaScript UWP apps as before, however the JavaScript profiling tools (Network ,CPU and Memory Profiler) are no longer available in Visual Studio 2019.

Office 工具範本更新Office Tools Template Updates

在 Visual Studio 2019 中,我們已對 Office、SharePoint 與 VSTO 範本進行一些變更。In Visual Studio 2019, we made a few changes to the Office, SharePoint, and VSTO templates.

  • Visual Studio 2019 也提供在 Visual Studio 2017 15.9 中新增的 SharePoint 2019 範本。The SharePoint 2019 templates that were added in Visual Studio 2017 15.9 are also available in Visual Studio 2019.
  • 我們已移除對 SharePoint 循序工作流程或狀態機器工作流程的支援。 State Machine Workflows.We have removed support for SharePoint Sequential Workflow or State Machine Workflows. 雖然您無法在 Visual Studio 2019 中建立或開啟這些工作流程,但您可以繼續在舊版 Visual Studio 中編輯它們。While you will not be able to create or open these workflows in Visual Studio 2019, you can continue to edit them in previous releases of Visual Studio.
  • 將不再提供 Office 2010 範本。Office 2010 templates will no longer be available. 不過,您仍然可以在 Visual Studio 2019 中開啟現有的 Office 2010 專案。However, you can still open existing Office 2010 projects in Visual Studio 2019.
  • 已重新命名 Office 2013 與 2016 範本以反映它們支援 Office 2013 與更新版本。The Office 2013 and 2016 templates have been renamed to reflect that they support Office 2013 and above.

Team Explorer 與 Azure DevOpsTeam Explorer and Azure DevOps

我們正在發行將 Team Explorer 連線到 Azure DevOps 專案時新的、流暢型、以開發人員為中心的體驗。We are releasing a new, streamlined, developer-centric experience when connecting Team Explorer to an Azure DevOps project.

  • 透過以指派給您的工作項目 (您正在關注的、您在討論中被提到的,以及以您的活動為基礎的) 篩選您的檢視並建立樞紐分析表,著重在相關工作項目。Focus on relevant work items by filtering and pivoting your view based on work items assigned to you, ones that you're following, ones where you're mentioned in the discussion, and ones based on your activity.

    • 在每個檢視內,您都可以建立內嵌工作項目、執行簡單的直接編輯、江工作項目標示為已完成,以及將工作項目與暫止的變更關聯。Within each view, you can create a work item inline, perform simple inline edits, mark a work item as complete, and associate a work item to pending changes.
  • 從會自動將工作項目與對本機分支進行之變更關聯的工作項目建立本機分支。Create a local branch from a work item which will automatically relate the work item to the changes made to that local branch. 這是預設體驗。This is the default experience. 若您要切換到傳統體驗,您可以 Visual Studio 中設定工作項目體驗Should you want to switch to the legacy experience, you can by setting the Work Items experience in Visual Studio. 請注意,這個新體驗只適用於 Git 存放庫。後續的更新中將提供 TFVC 存放庫的新體驗。Note that this new experience is only true for Git repos. The new experience for TFVC repos will available in a following update.

    Azure DevOps Work Item Hub
    *Azure DevOps 工作項目中樞**Azure DevOps Work Item Hub*
  • 在暫止的變更認可訊息中執行 #提及時,搜尋工作項目。Search for work items when doing a #mention in the pending changes commit message. 如需詳細資訊,請參閱使用 [工作項目] 來檢視及新增工作項目頁面。For more details, see the View and add work items using the Work Items page.

    Azure DevOps #mentions
    *Azure DevOps #提及**Azure DevOps #mentions*
  • 由於在 Azure DevOps 中的採用率不高,對 Microsoft Project 的支援已從適用於 Visual Studio 2019 的 Team Foundation Server Office 整合 2019 外掛程式移除。Support for Microsoft Project has been removed from the Team Foundation Server Office Integration 2019 plug-in for Visual Studio 2019 due to a low adoption rate in Azure DevOps. 您現在必須將您的工作項目匯出到 Excel 並手動將它們貼到 Project。You will now need to export your work items to Excel and manually paste them into Project.

  • 對 PowerPoint 的支援已從適用於 Visual Studio 2019 的 Team Foundation Server Office 整合 2019 外掛程式移除。Support for PowerPoint has been removed from the Team Foundation Server Office Integration 2019 plug-in for Visual Studio 2019. 不過,使用者仍然可以在 PowerPoint 中建立腳本並手動將它們連結到 Azure DevOps 中的工作項目。However, users can still create storyboards in PowerPoint and link them manually to work items in Azure DevOps.

Application Insights 和 HockeyAppApplication Insights and HockeyApp

  • 在 Visual Studio 2019 中,已移除 Application Insights 趨勢視窗,您可以使用其他功能更豐富的替代選項。The Application Insights Trends window has been removed in Visual Studio 2019 in favor of alternatives that are more feature-rich. 您可以改為使用 Visual Studio 中的 Application Insights 搜尋視窗,或 Azure 入口網站中 Application Insights 中的豐富診斷工具集。Instead, you can use the Application Insights Search window in Visual Studio or the rich set of diagnostics tools in Application Insights in the Azure portal.
  • 已移除用於新增 HockeyApp SDK 及建立新的搶鮮版 (Beta) 發行版本的精靈。The wizards for adding the HockeyApp SDK and creating new beta distributions have been removed. 我們改為使用 Visual Studio App Center,這是 HockeyApp 的後繼者。We instead recommend using Visual Studio App Center, the successor to HockeyApp. 您仍然可以正常使用 HockeyApp,只不過 Visual Studio 中沒有這些捷徑就是。You can still use HockeyApp normally, except without these shortcuts in Visual Studio.

Release Notes Icon Visual Studio 2019 RC 中已修正的問題Issues fixed in Visual Studio 2019 RC

最近更新於 2019 年 4 月 26 日most recently updated on April 26, 2019


已知問題Known Issues

透過前往以下連結,查看全部現有已知問題和 Visual Studio 2019 版 16.0 中可用的因應措施。See all existing known issues and available workarounds in Visual Studio 2019 version 16.0 by following the below link.

Visual Studio 2019 Known Issues Visual Studio 2019 Known Issues


意見反應與建議Feedback and suggestions

我們很希望聽聽您的意見!We would love to hear from you! 若有任何問題,請透過安裝程式或 Visual Studio IDE 本身右上角的回報問題選項來通知我們。For issues, let us know through the Report a Problem option in the upper right-hand corner of either the installer or the Visual Studio IDE itself. 必須提供The Feedback Icon 圖示位在右上角。icon is located in the upper right-hand corner. 您可以在 Visual Studio 開發人員社群中提出產品建議或追蹤您的問題,也可以提出問題、尋找解答及提議新功能。You can make a product suggestion or track your issues in the Visual Studio Developer Community, where you can ask questions, find answers, and propose new features. 您也可以透過我們的即時聊天支援取得免費的安裝協助。You can also get free installation help through our Live Chat support.


部落格Blogs

善用「開發人員工具部落格」網站中的見解與建議,讓您能夠隨時取得所有新版本的最新資訊,以及涵蓋各類功能的深入探討文章。Take advantage of the insights and recommendations available in the Developer Tools Blogs site to keep you up-to-date on all new releases and include deep dive posts on a broad range of features.


Visual Studio 2019 版本資訊歷程記錄Visual Studio 2019 Release Notes History

如需舊版 Visual Studio 2019 的相關詳細資訊,請參閱 Visual Studio 2019 版本資訊歷程記錄頁面。For more information relating to past versions of Visual Studio 2019, see the Visual Studio 2019 Release Notes History page.


頁面頂端

Top of Page