Visual Studio IconVisual Studio 2019 版本 16.4 发行说明


开发者社区 | 系统要求 | 兼容性 | 可分发代码 | 发布历史记录 | 许可条款 | 博客 | Visual Studio 新增功能文档


注意

此版本不是最新版本的 Visual Studio。 若要下载最新版本,请访问 Visual Studio 网站。



支持的时间范围

Visual Studio 2019 版本 16.4 已不再受到支持。

Visual Studio 2019 版本 16.4 的企业和专业用户受到支持,并且他们在 2021 年 10 月之前确实收到了安全漏洞修复。 此时间范围由以下事实决定:2020 年 8 月,Visual Studio 2019 版本 16.7 已被指定为 Visual Studio 2019 产品的下一个服务基线。 有关 Visual Studio 支持的基线的详细信息,请查看 Visual Studio 2019 的支持策略。 

请参阅最新版本的发行说明或访问 Visual Studio 站点下载最新支持的 Visual Studio 2019 版本。

Visual Studio 2019 版本 16.4 发行版

存档的版本说明

Visual Studio 2019 博客

可从 Visual Studio 2019 博客获取来自 Visual Studio 工程团队的官方产品见解。 有关 Visual Studio 2019 版的详细信息,可参阅以下文章:


请参阅 Visual Studio 2019 版本 16.4 中采用的所有开发人员社区项的完整列表


Release Notes Icon Visual Studio 2019 版本 16.4.27

发布时间:2021 年 10 月 12 日

Visual Studio 2019 版本 16.4.27 中已解决的首要问题

安全顾问公告

CVE-2021-1971 OpenSSL 拒绝服务漏洞

Git 使用的 OpenSSL 库中存在潜在的拒绝服务漏洞。

CVE-2021-3449 OpenSSL 拒绝服务漏洞

Git 使用的 OpenSSL 库中存在潜在的拒绝服务漏洞。

CVE-2021-3450 OpenSSL 拒绝服务漏洞

Git 使用的 OpenSSL 库中存在潜在的标志绕过漏洞。


Release Notes Icon Visual Studio 2019 版本 16.4.26

发布日期:2021 年 9 月 14 日

Visual Studio 2019 版本 16.4.26 中已解决的首要问题

安全顾问公告

CVE-2021-26434 Visual Studio 错误的权限分配特权提升漏洞

安装了使用 C++ 的游戏开发并选择了 Unreal Engine 安装程序工作负载后,Visual Studio 中存在权限分配漏洞。 该系统在安装过程中容易受到 LPE 的攻击,它会创建一个对所有用户都具有写入访问权限的目录。

CVE-2021-36952 Visual Studio 远程代码执行漏洞

如果内存中的对象处理不当,Visual Studio 中会存在远程代码执行漏洞。 成功利用此漏洞的攻击者可能会在当前用户的上下文中运行任意代码。


Release Notes Icon Visual Studio 2019 版本 16.4.25

发布日期:2021 年 8 月 10 日

Visual Studio 2019 版本 16.4.25 中已解决的首要问题

  • 修复了影响 update 命令的命令行执行的问题。 如果第一次更新失败,则后续发出 update 命令现在会导致更新从中断的位置继续先前的操作。

安全顾问公告

CVE-2021-26423 .NET Core 拒绝服务漏洞

存在拒绝服务漏洞,在这种情况下,提供 WebSocket 终结点的 .NET (Core) 服务器应用程序在尝试读取单个 WebSocket 帧时可能会陷入无限循环。

CVE-2021-34485 .NET Core 信息泄漏漏洞

使用 Linux 和 macOS 上的全局读取权限创建由工具创建的用于收集故障转储和按需转储的转储时,存在信息泄漏漏洞。

CVE-2021-34532 ASP.NET Core 信息泄露漏洞

如果无法分析 JWT 令牌,则记录该令牌时存在信息泄漏漏洞。


Release Notes Icon Visual Studio 2019 版本 16.4.24

发布时间:2021 年 7 月 13 日

Visual Studio 2019 版本 16.4.24 中已解决的首要问题

  • .NET 3.1.117 SDK 已插入 Visual Studio 2019。

Release Notes Icon Visual Studio 2019 版本 16.4.23

发布日期:2021 年 6 月 08 日

Visual Studio 2019 版 16.4.23 中修复的首要问题

安全顾问公告

CVE-2021-31957 ASP.NET 拒绝服务漏洞

ASP.NET Core 未正确处理客户端断开连接问题时,存在拒绝服务漏洞。


Release Notes IconVisual Studio 2019 版 16.4.22

发布日期:2021 年 5 月 11 日

Visual Studio 2019 版 16.4.22 中修复的首要问题

  • 修复了管理员创建用于部署更新的 Visual Studio 新布局时导致更新失败的问题。 由于布局已移动位置,客户端计算机更新将会失败。

安全顾问公告

CVE-2021-27068 在嵌套文件夹中植入 python.exe 时存在进行 RCE 的可能性

使用 python 代码打开工作区时存在远程代码执行漏洞,并且该工作区的脚本子文件夹中包含 python.exe。

CVE-2021-31204 .NET Core 特权提升漏洞

当用户在基于 Linux 或 macOS 的操作系统上运行单个文件应用程序时,.NET 5.0 和 .NET Core 3.1 中存在特权提升漏洞。


Release Notes Icon Visual Studio 2019 版本 16.4.21

发布日期:2021 年 4 月 13 日

Visual Studio 2019 v16.4.21 中修复的首要问题

安全顾问公告

CVE-2021-27064 Visual Studio 安装程序特权提升漏洞

Visual Studio 安装程序在提升状态下执行反馈客户端时,存在远程代码执行漏洞。

CVE-2021-28313 / CVE-2021-28321 / CVE-2021-28322 诊断中心标准收集器服务特权提升漏洞

如果诊断中心标准收集器对数据操作的处理不当,就会存在特权提升漏洞。


Release Notes Icon Visual Studio 2019 v16.4.20

发布时间:2021 年 3 月 9 日

Visual Studio 2019 v16.4.20 中修复的首要问题

安全顾问公告

CVE-2021-21300 Git for Visual Studio 远程代码执行漏洞

当 Visual Studio 克隆恶意软件时,会存在远程代码执行漏洞。

CVE-2021-26701 .NET Core 远程代码执行漏洞

由于文本编码的执行方式,.NET 5 和 .NET Core 中存在远程代码执行漏洞。


Release Notes Icon Visual Studio 2019 版本 16.4.19

发布时间:2021 年 2 月 10 日

Visual Studio 2019 版本 16.4.19 中已修复的主要问题


Release Notes Icon Visual Studio 2019 版本 16.4.18

发布时间:2021 年 2 月 09 日

Visual Studio 2019 版本 16.4.18 中已修复的主要问题

安全顾问公告

CVE-2021-1639 TypeScript 语言服务远程代码执行漏洞

当 Visual Studio 加载包含 JavaScript 或 TypeScript 代码文件的恶意存储库时,会存在远程代码执行漏洞。

CVE-2021-1721 .NET Core 拒绝服务漏洞

在 X509 证书链生成期间创建 HTTPS Web 请求时存在拒绝服务漏洞。

CVE-2021-24112 .NET 5 和 .NET Core 远程代码执行漏洞

释放图元文件时,如果图形界面仍有对它的引用,则会存在远程代码执行漏洞。 此漏洞仅存在于在 MacOS 或 Linux 上运行的系统中。


Release Notes Icon Visual Studio 2019 版本 16.4.17

发布时间:2020 年 1 月 12 日

Visual Studio 2019 版本 16.4.17 中已修复的主要问题

安全顾问公告

CVE-2021-1651 / CVE-2021-1680 诊断中心标准收集器服务特权提升漏洞

如果诊断中心标准收集器对数据操作的处理不当,就会存在特权提升漏洞。

CVE-2020-26870 Visual Studio 安装程序远程代码执行漏洞

Visual Studio 安装程序尝试显示恶意 markdown 时存在远程代码执行漏洞。

CVE-2021-1723 .NET Core 和 Visual Studio 拒绝服务漏洞

Kestrel 的实现中存在拒绝服务漏洞。


Release Notes Icon Visual Studio 2019 版本 16.4.16

发布时间:2020 年 12 月 8 日

Visual Studio 2019 版本 16.4.16 中已修复的主要问题

安全顾问公告

CVE-2020-17156 Visual Studio 远程代码执行漏洞

当 Visual Studio 克隆恶意软件时,会存在远程代码执行漏洞。


Release Notes Icon Visual Studio 2019 版本 16.4.15

发布时间:2020 年 11 月 10 日

Visual Studio 2019 版本 16.4.15 中已修复的主要问题

安全顾问公告

CVE-2020-17100 Visual Studio 篡改漏洞

针对 Visual Studio 的 Python 工具创建 python27 文件夹时存在篡改漏洞。 成功利用此漏洞的攻击者可在提升的上下文中运行进程。


Release Notes Icon Visual Studio 2019 版本 16.4.14

发布日期:2020 年 10 月 13 日

Visual Studio 2019 版本 16.4.14 中已修复的主要问题

  • 添加了一个选择加入标记来缓解某些 Intel 处理器上的 JCC 勘误表造成的性能影响。
  • PGO MEMMAX 开关现应采用更可能尊重用户输入的方式运行。
  • 减少了保留用于 PGO 分析的内存量。
  • 向 Visual Studio 2019 添加了 .NET Core 2.1.13 运行时和 3.1.109 SDK (3.1.9)。

Release Notes Icon Visual Studio 2019 版本 16.4.13

发布日期:2020 年 9 月 8 日

Visual Studio 2019 版本 16.4.13 中已修复的主要问题

安全顾问公告

CVE-2020-1130 诊断中心标准收集器特权提升漏洞

如果诊断中心标准收集器对数据操作的处理不当,就会存在特权提升漏洞。 成功利用此漏洞的攻击者可在提升的上下文中运行进程。

CVE-2020-1133 诊断中心标准收集器特权提升漏洞

如果诊断中心标准收集器对文件操作的处理不当,就会存在特权提升漏洞。 成功利用此漏洞的攻击者可在提升的上下文中运行进程。

CVE-2020-16856 Visual Studio 远程代码执行漏洞

如果内存中的对象处理不当,Visual Studio 中会存在远程代码执行漏洞。 成功利用此漏洞的攻击者可能会在当前用户的上下文中运行任意代码。

CVE-2020-16874 Visual Studio 远程代码执行漏洞

如果内存中的对象处理不当,Visual Studio 中会存在远程代码执行漏洞。 成功利用此漏洞的攻击者可能会在当前用户的上下文中运行任意代码。

CVE-2020-1045 Microsoft ASP.NET Core 安全功能绕过漏洞

Microsoft ASP.NET Core 分析编码 Cookie 名称的方式存在安全功能绕过漏洞。 ASP.NET Core Cookie 分析器对整个 Cookie 字符串进行解码,这可能会使恶意攻击者设置第二个 Cookie,并对其名称进行百分号编码。

16.4.13 中的额外修复

  • 解决了有时导致 Visual Studio 或 MSBuild 在取消 C++ 生成后停止响应的问题。
  • 如果 .NET Core 不受支持的版本在 Visual Studio 安装之外被删除,那么将不再在修复或升级期间重新安装它们。

Release Notes Icon Visual Studio 2019 版本 16.4.12

发布日期:2020 年 8 月 11 日

Visual Studio 2019 版本 16.4.12 中修复的主要问题

安全顾问公告

CVE-2020-1597

ASP.NET Core 未正确处理 Web 请求时,存在拒绝服务漏洞。 如果攻击者成功利用此漏洞,可能会导致对 ASP.NET Core Web 应用程序拒绝服务。 可以远程利用漏洞,无需进行身份验证。


Release Notes Icon Visual Studio 2019 版本 16.4.11

发布时间:2020 年 7 月 14 日

Visual Studio 2019 版本 16.4.11 中已修复的主要问题

安全顾问公告

CVE-2020-1393 诊断中心标准收集器服务特权提升漏洞

当因 Windows 诊断中心标准收集器服务未能正确纠正输入而导致不安全的库加载行为时,则存在特权提升漏洞。

CVE-2020-1416 Visual Studio 特权提升漏洞

在 Visual Studio 中加载软件依赖项时,存在特权提升漏洞。

CVE-2020-1147 .NET Core 拒绝服务漏洞

未经过身份验证的远程攻击者可能通过向 ASP.NET Core 应用程序或其他分析特定 XML 类型的应用程序发布特制请求来利用此漏洞。 安全更新通过限制可在 XML 有效负载中呈现的类型来解决此漏洞。


Release Notes Icon Visual Studio 2019 版本 16.4.10

发布日期:2020 年 6 月 9 日

Visual Studio 2019 版本 16.4.10 中修复的主要问题

  • 修复了可能在 setjmp 后还原错误的值这一 bug。

安全顾问公告

CVE-2020-1108 / CVE-2020-1108 .NET Core 拒绝服务漏洞

为了全面解决 CVE-2020-1108,Microsoft 发布了 .NET Core 2.1 和 .NET Core 3.1 的更新。 使用任何这些版本的 .NET Core 的客户都应安装最新版本的 .NET Core。 有关最新版本号和 .NET Core 更新说明,请参阅发行说明

CVE-2020-1202 / CVE-2020-1203 诊断中心标准收集器服务特权提升漏洞

如果诊断中心标准收集器或 Visual Studio 标准收集器未能正确处理内存中的对象,就会存在特权提升漏洞。

CVE-2020-1293 / CVE-2020-1278 / CVE-2020-1257 诊断中心标准收集器服务特权提升漏洞

如果诊断中心标准收集器服务对文件操作的处理不当,就会存在特权提升漏洞。


Release Notes Icon Visual Studio 2019 版本 16.4.9

发布日期:2020 年 5 月 27 日

Visual Studio 2019 版本 16.4.9 中已修复的主要问题

  • 修复了进行优化分析结果导致误标为不需要的指令被删除的缓存 bug。 此修补程序用于检测将过时数据存储到缓存中的情况。 很难完全表征这种情况何时出现,但在报告中,它是循环索引中的一个模运算符。 为了满足将来的需求,我们添加了(不受支持的)/d2ssa-bit-estimator- 标志来完全禁用特定优化。 此标志随修补程序一起添加,在以前的版本中不存在。
  • 添加了支持,以缓解某些 Intel 处理器上由 Intel 跳转条件代码 (JCC) 错误微代码更新导致的性能影响。
  • 修复了误报的 C6244 警告以及在代码分析过程中由 lambda 局部变量引起的 cl.exe 崩溃。
  • 针对 Office 代码运行的 PREfast 16.5 中的 ICE

Release Notes Icon Visual Studio 2019 版本 16.4.8

发布时间:2020 年 5 月 12 日

Visual Studio 2019 版本 16.4.8 中已修复的主要问题

  • 添加了一个更改,让企业 IT 管理员和部署工程师可以配置 Microsoft 更新客户端和 SCCM 等工具,以确定 Microsoft 更新目录和 WSUS 上托管的 VS2019 16.4 更新的适用性。

安全顾问公告

CVE-2020-1108 .NET Core 拒绝服务漏洞

未经过身份验证的远程攻击者可以通过向 .NET Core 应用程序发布特制请求利用此漏洞。 此安全更新通过纠正 .NET Core Web 应用程序处理 Web 请求的方式修复此漏洞。

CVE-2020-1161 .NET Core 拒绝服务漏洞

远程未经过身份验证的攻击者可以通过向 ASP.NET 应用程序发布特制请求利用此漏洞。 此安全更新通过纠正 ASP.NET Core Web 应用程序处理 Web 请求的方式解决此漏洞。


Release Notes Icon Visual Studio 2019 版本 16.4.7

发布时间:2020 年 4 月 14 日

Visual Studio 2019 版本 16.4.7 中已修复的主要问题

安全顾问公告

CVE-2020-0899 Microsoft Visual Studio 特权提升漏洞

当 Microsoft Visual Studio 更新程序服务不当处理文件权限时,会出现特权提升漏洞。 成功利用了此漏洞的攻击者可覆盖本地系统的安全上下文中的任意文件内容。

CVE-2020-0900 Visual Studio Extension Installer 服务特权提升漏洞

当 Visual Studio Extension Installer 服务不当处理文件操作时,会出现特权提升漏洞。 成功利用了此漏洞的攻击者可使用已提升的权限删除任意位置的文件。

CVE-2020-5260 由于对 URL 的验证不足而导致的 Git for Visual Studio 凭据泄露漏洞

当专门创建的 URL 被分析并发送至凭据帮助程序时,会出现凭据泄露漏洞。 这可能会导致凭据被发送到错误的主机。


Release Notes IconVisual Studio 2019 版本 16.4.6

发布日期:2020 年 3 月 10 日

Visual Studio 2019 版本 16.4.6 中已修复的主要问题

安全顾问公告

CVE-2020-0793CVE-2020-0810 诊断中心标准收集器服务特权提升漏洞

当诊断中心标准收集器无法正确处理文件操作,或 Windows 诊断中心标准收集器服务无法正确纠正输入时,就存在特权提升漏洞。

CVE-2020-0884 在创建 Outlook Web 外接程序时存在欺骗漏洞

如果启用了多重身份验证,则在创建 Outlook Web 外接程序时存在欺骗漏洞,因为它包含不受 SSL 保护的回复 URL。 成功利用此漏洞的攻击者可以破坏访问令牌,从而导致安全和隐私风险。

CVE-2020-0789 Visual Studio Extension Installer 服务拒绝服务漏洞

当 Visual Studio Extension Installer 服务无法正确处理硬链接时,存在拒绝服务漏洞。 成功利用此漏洞的攻击者可能导致目标系统停止响应。


Release Notes Icon Visual Studio 2019 版本 16.4.5

发布时间:2020 年 2 月 11 日

Visual Studio 2019 版本 16.4.5 中已修复的主要问题


Release Notes Icon Visual Studio 2019 版本 16.4.4

发布日期:2020 年 1 月 30 日

Visual Studio 2019 版本 16.4.4 中已修复的主要问题


Release Notes Icon Visual Studio 2019 版本 16.4.3

发布日期:2020 年 1 月 14 日

安全顾问公告

CVE-2020-0602 ASP.NET Core 拒绝服务漏洞

远程未经过身份验证的攻击者可以通过向 ASP.NET 应用程序发布特制请求利用此漏洞。 此安全更新通过纠正 ASP.NET Core Web 应用程序处理 Web 请求的方式解决此漏洞。

CVE-2020-0603 ASP.NET Core 远程代码执行漏洞

远程未经过身份验证的攻击者可以通过向 ASP.NET 应用程序发布特制请求利用此漏洞。 此安全更新通过纠正 ASP.NET Core Web 应用程序处理内存的方式解决此漏洞。

CVE-2020-0605 .NET Core 远程代码执行漏洞

利用漏洞需要用户使用受影响的 .NET Core 版本打开专门设计的文件。 在电子邮件攻击场景中,攻击者可以通过向用户发送专门设计的文件并说服用户打开该文件来利用此漏洞。此安全更新通过更正 .NET Core 检查文件的源标记的方式来解决该漏洞。

CVE-2020-0606 .NET Core 远程代码执行漏洞

利用漏洞需要用户使用受影响的 .NET Core 版本打开专门设计的文件。 在电子邮件攻击场景中,攻击者可以通过向用户发送专门设计的文件并说服用户打开该文件来利用此漏洞。此安全更新通过更正 .NET Core 检查文件的源标记的方式来解决该漏洞。

Visual Studio 2019 版本 16.4.3 中已修复的主要问题


Release Notes IconVisual Studio 2019 版本 16.4.2

发布时间:2019 年 12 月 17 日

Visual Studio 2019 版本 16.4.2 中已修复的主要问题


Release Notes Icon Visual Studio 2019 版本 16.4.1

发布时间:2019 年 12 月 10 日

Visual Studio 2019 版本 16.4.1 中已修复的主要问题

安全顾问公告

CVE-2019-1349 由于对子模块名称的限制过于宽松导致 Visual Studio 远程执行漏洞的 Git

Git 遇到同级子模块的目录的子模块名称冲突时,存在远程代码执行漏洞。 成功利用此漏洞的攻击者可以针对目标计算机远程执行代码。 该安全更新通过使用新版本的 Git for Windows 来解决该漏洞,该版本要求用于子模块克隆的目录为空。

CVE-2019-1350 由于命令行参数的错误引用导致 Visual Studio 远程执行漏洞的 Git

Git 使用递归克隆过程中的特定引用以及 SSH URL 解释命令行参数时,存在远程代码漏洞。 成功利用此漏洞的攻击者可以针对目标计算机远程执行代码。 该安全更新通过使用新版本的 Git for Windows 来解决该漏洞,该版本可修复此问题。

CVE-2019-1351 由于在克隆期间使用了非字母驱动器名称导致 Visual Studio 任意文件覆盖漏洞的 Git

非字母驱动器名称绕过 git clone 中的安全检查时,存在任意文件覆盖漏洞。 成功利用此漏洞的攻击者可以针对目标计算机写入任意文件。 该安全更新通过使用新版本的 Git for Windows 来解决该漏洞,该版本可修复此问题。

CVE-2019-1352 由于未感知 NTFS 备用数据流导致 Visual Studio 远程执行漏洞的 Git

通过 NTFS 备用数据流克隆和写入 .git/ 目录时,存在远程代码执行漏洞。 成功利用此漏洞的攻击者可以针对目标计算机远程执行代码。 该安全更新通过使用新版本的 Git for Windows 来解决该漏洞,该版本可感知 NTFS 备用数据流。

CVE-2019-1354 由于未拒绝写入包含反斜杠的跟踪文件导致的 Visual Studio 任意文件覆盖漏洞的 Git

带有反斜杠和恶意符号链接的树条目突破工作树时,Git 中存在任意文件覆盖漏洞。 成功利用此漏洞的攻击者可以针对目标计算机写入任意文件。 该安全更新通过使用新版本的 Git for Windows 来解决该漏洞,该版本不允许使用反斜杠。

CVE-2019-1387 由于对递归克隆中的子模块名称的验证过于宽松导致的 Visual Studio 远程执行漏洞的 Git

当对子模块进行递归克隆时,Git 中存在远程代码执行漏洞。 成功利用此漏洞的攻击者可以针对目标计算机远程执行代码。 该安全更新通过使用新版本的 Git for Windows 来解决该漏洞,该版本加强了对子模块名称的验证。

CVE-2019-1486 Live Share 扩展 URL 重定向漏洞

当连接到 Live Share 会话的一个客机重定向到由会话主机指定的任意 URL 时,Visual Studio Live Share 扩展中检测到欺骗漏洞。 攻击者可以成功利用此漏洞,使客机打开浏览器并在无需明确同意的情况下导航到恶意 URL。 这属于 Live Share 的“共享服务器”功能,该功能允许在 Live Share 活动会话期间进行自动端口转移。 最新更新通过在浏览主机指定的 URL 前提示 Live Share 客机确认是否同意来解决此漏洞。


Release Notes Icon Visual Studio 2019 版本 16.4

发布时间:2019 年 12 月 3 日

Visual Studio 2019 版本 16.4 中的新增功能摘要

  • Visual Studio 现在支持“FIPS 符合性模式”
  • XAML 设计器缩放/位置现在默认为“适合全部”。
  • 添加了“创建数据绑定”对话框。
  • 区域 IntelliSense 改进
  • XAML IntelliSense 中的代码片段
  • 弹出 XAML 编辑器作为设计器的单独窗口
  • 显示引用的程序集的资源
  • 实时可视化树中的“仅我的 XAML”
  • 合并资源字典
  • 支持 XAML 孤岛
  • 编辑模板现在可与第三方控件结合使用。
  • C++ MSBuild 和 CMake 项目中对 Clang 和 MSVC 的 支持
  • 为通过 Windows 上的 MSVC 编译的项目提供 AddressSanitizer 支持
  • 支持将本地 Git 存储库发布到 GitHub
  • 通过垂直文档选项卡将文档选项卡更改为垂直布局。
  • 此版本中的 .NET 效率提升包括:能够直接在错误列表中配置代码样式规则的严重性级别;“查找所有引用”现在提供按类型和成员分组的选项;进行了重构,可将局部函数设置为静态,并将在函数外部定义的变量传入到该函数的声明和调用。
  • 使用新的可固定属性功能,快速自定义对象在调试器窗口中的显示方式。
  • 容器工具窗口添加了检查、停止、启动和删除 Docker 容器和映像的功能
  • 可以选择自动隐藏工具窗口以提高启动性能
  • 管理发布依赖项或使用连接服务时,自动检测 SQL Server 和 Azure 存储连接字符串
  • 添加了对开发使用 64 位运行时的 Azure Functions 的支持。
  • 添加了对 .NET Core 3.0 应用发布选项的支持:准备运行(Crossgen)、链接和 SingleExe
  • 此版本中的 .NET Productivity 新增功能包括直接通过编辑器配置代码样式规则的严重性级别,使用新的 Go To Base 命令轻松地沿继承链向上导航,为所有参数添加 NULL 检查并为覆盖方法添加 XML 文档。
  • 适用于 Xamarin.Forms 的 XAML 热重载
  • Android 应用程序包发布
  • AndroidX 迁移向导
  • Android 布局 Linting

Visual Studio 2019 版本 16.4 中的新增功能详细信息

Visual Studio 现在支持“FIPS 符合性模式”

从版本 16.4 开始,在开发适用于 Windows、Azure 和 .NET 的应用和解决方案时,Visual Studio 2019 现在支持FIPS 140-2 符合性模式”。 开发适用于非 Microsoft 平台(如 Linux、iOS 或 Android)的应用或解决方案时,这些平台可能不使用 FIPS 140-2 批准的算法。 Visual Studio 附带的第三方软件或由你安装的扩展也无法使用 FIPS 140-2 批准的算法。 此外,开发 SharePoint 解决方案不支持 FIPS 140-2 符合性模式。

若要为 Visual Studio 配置 FIPS 140-2 符合性模式,请安装 .NET Framework 4.8,然后启用组策略设置“系统加密:使用符合 FIPS 的算法进行加密、哈希和签名”。

WPF/UWP 工具

生成 WPF/UWP 应用程序的客户将在 Visual Studio XAML 工具中看到以下改进:

Designer

  • XAML 设计器缩放/位置现在默认为“全部”:根据客户反馈,我们已重新评估了打开 XAML 窗口/页面/控件/等时出现的默认 XAML 设计器缩放行为。以前的经验丰富的用户在 Visual Studio 会话中存储了每个文件的缩放级别和位置,在经过一段时间后客户返回到文件时,这会导致混淆。 从此版本开始,我们只会存储活动会话持续时间的缩放级别和位置,并在 Visual Studio 重启后返回到“适合全部”默认值。
  • 创建数据绑定对话框:WPF .NET Framework 开发人员可以通过右键单击 XAML 设计器和属性资源管理器使用 Visual Studio 的“数据绑定”对话框,并且此对话框以前也可供 UWP 开发人员使用。 在此版本中,我们将为 UWP 开发人员提供这种体验,并添加对 WPF .NET Core 应用程序的支持。 此功能仍处于开发阶段,并且将来会继续改进,以使其恢复与 .NET Framework 对话功能的功能奇偶一致性。

XAML 编辑器

  • IntelliSense #regions 改进:从 Visual Studio 2015 开始,#regions 支持已适用于 WPF 和 UWP XAML 开发人员,更适用于 Xamarin.Forms。 在此版本中,我们修复了 IntelliSense bug,通过此修复,#regions 现在会在你开始键入 <! 时正确显示。
  • XAML IntelliSense 中的代码片段:IntelliSense 已经过增强,以支持显示 XAML 代码片段,这将适用于内置代码片段以及手动添加的任何自定义代码片段。 从此版本开始,我们还会包括一些现成的 XAML 代码片段:#region、列定义、行定义、资源库和标记。
  • 弹出 XAML 编辑器作为设计器的单独窗口:现在,可以使用 XAML 选项卡旁边新的弹出 XAML 按钮轻松地将 XAML 设计器及其基础 XAML 编辑器拆分为单独的窗口。单击后,XAML 设计器将最小化其附加的 XAML 选项卡,并仅针对 XAML 编辑器视图弹出一个新窗口。 可以将此新窗口移动到 Visual Studio 中的任何显示或选项卡组。 请注意,仍可以展开原始 XAML 视图,但无论如何,同一文件的所有 XAML 视图都将实时保持同步。
Pop up XAML code window
弹出 XAML 代码窗口
  • 显示引用的程序集的资源: XAML IntelliSense 已更新,以支持在引用的程序集中显示 XAML 资源(如果源不可用),用于 WPF Framework 和 WPF .NET Core 项目。

XAML 调试工具

  • 实时可视化树中的“仅我的 XAML”:Live Visual Tree 是一项功能,当 UWP 和 WPF 开发人员在调试模式下运行其应用程序时均可用该功能,并且该功能是与 XAML 热重载相关的实时编辑工具的一部分。 以前,该功能会显示所附加的运行应用程序的完整实时可视化树,无需任何筛选器即可查看你在应用程序中编写的 XAML。 这导致了杂乱的体验,并且根据客户反馈,我们添加了一个名为“仅我的 XAML”的新默认值,它会将树限制为仅在你的应用程序中编写的控件。 虽然这是新的默认设置,但仍可以通过分叉实时可视化树本身中的按钮或通过新设置返回到以前的行为(如下所示:“选项”>“调试”>“常规”>启用“仅我的 XAML”)
Show Just My XAML in Live Visual Tree
显示实时可视化树中的“仅我的 XAML”

资源和模板

  • 合并资源字典:现在,可以使用通过“解决方案资源管理器”提供的新功能轻松地将 UWP/WPF 项目中的现有资源字典与任何有效的 XAML 文件合并。 只需打开要在其中添加合并语句的 XAML 文件,然后查找要合并的文件,然后在“解决方案资源管理器”中右键单击该文件。 在上下文菜单中,选择“将资源字典合并到活动窗口”选项,该选项将添加带有路径的正确合并 XAML。
Merge Resource Dictionary
合并资源字典
  • 编辑模板现在适用于第三方控件中的控件:现在可以创建控件模板的副本,即使它不是作为源代码的解决方案的一部分。 通过此更改,“编辑模板”功能现在可供使用,并且可以像提供源的第一方元素一样使用。 请注意,此功能适用于第三方控件库和不提供源的第一方。

XAML 孤岛:

  • 改进了 XAML 岛支持:添加了对 Windows 窗体和 WPF .NET Core 3 应用的 XAML 孤岛方案的支持,使用户可以更轻松地将 UWP XAML 控件添加到这些应用程序中。 通过这些改进,.NET Core 3 项目可以引用包含自定义 UWP XAML 控件的 UWP 项目。 WindowsXamlHost 控件(在 Windows 社区工具包 v6 (Microsoft.Toolkit.Wpf.UI.XamlHost v6.0) 中提供)可以使用这些自定义控件。 用户还可以使用 Windows 应用程序打包项目为使用孤岛的 .NET Core 3 生成 MSIX。 若要了解如何开始使用,请访问我们的文档

C++

  • 无论你使用 Clang 还是 MSVC 工具集,代码分析现在都本机支持 MSBuild 和 CMake 项目的 Clang-Tidy。 clang-tidy 检查可以作为后台代码分析的一部分运行,显示为编辑器内的警告(波形曲线),并显示在错误列表中。
Clang-Tidy warnings in the Error List
错误列表中的 Clang-Tidy 警告
  • Visual Studio CMake 项目现在提供概述页面,可帮助你开始进行跨平台开发。 这些页面是动态的,有助于连接到 Linux 系统并将 Linux 或 WSL 配置添加到 CMake 项目。
CMake Overview Pages
CMake 概述页
  • CMake 项目的启动下拉菜单现在会显示最近使用的目标,并且可以进行筛选。
  • C++/CLI 现在支持与 Windows 上的 .NET Core 3.1 和更高版本互操作。
  • 现可为使用 Windows 上的 MSVC 编译的项目启用 ASan 以进行 C++ 代码的运行时检测,这有助于检测内存错误。
  • MSVC 的 C++ 标准库的更新:
    • C++17:已实现 to_chars() 常规精度,从而完成 P0067R5 基本字符串转换 (charconv)。 这完成了 C++17 标准中所有库功能的实现。
    • C++20:已实现 P1754R1 将概念重命名为 standard_case。 若要在最新的 C++ 工作草稿中包含预览功能,可以使用编译器标志 /std:c++latest;还可在 C/C++ > 语言项目属性页面,通过 C++ 语言标准属性设置此标志。
  • 现已推出名为 C++ Build Insights 的新工具集合。 请参阅 C++ 团队博客以了解详细信息。

对发布到 GitHub 的支持

  • Visual Studio 的 GitHub Essentials 现在包含适用于 Visual Studio 的 GitHub 扩展中的“发布到 GitHub”功能。
  • 现可使用“团队资源管理器同步”页面上的“发布到 GitHub”按钮将本地 Git 存储库发布到 GitHub。

Visual Studio 中的垂直文档选项卡

在位于编辑器左侧或右侧的垂直列表中管理文档选项卡。

Manage your document tabs in a vertical list on either the left or right side of your editor
Visual Studio 中的垂直文档选项卡

可固定属性调试工具

现在可以通过使用可固定属性功能将属性固定到“数据提示”或“监视”、“自动”和“局部变量”窗口的顶部,在调试时快速标识和检查对象。

Identify and inspect objects by pinning properties using the Pinnable Properties feature
Visual Studio 中的可固定属性

容器工具窗口

  • 可以列出、检查、停止、启动和删除容器
  • 可以查看正在运行的容器的日志和文件内容,以及在容器中打开终端窗口
  • 可以查看、检查和删除映像
You can list, inspect, stop, start, and remove containers through the containers tool window.
Visual Studio 中的容器工具窗口

自动隐藏工具窗口

启用此预览功能选项,可以避免由于在启动 Visual Studio 时打开多个工具窗口而引入的启动延迟。

.NET 效率

  • 现在可以通过错误列表直接配置代码样式规则的严重性级别。 将光标置于错误、警告或建议上。 右键单击,然后选择“启动”。 然后选择要为该规则配置的严重性级别。 这将使用规则的新严重性更新现有的 EditorConfig。 这也适用于第三方分析器。
Set rule severity directly through the error list
直接通过错误列表设置规则严重性
  • 现在可以通过“查找所有引用”按类型和成员进行分组。
Group by type and member in Find All References
在“查找所有引用”中按类型和成员分组
  • 现在可以将局部函数设置为静态,并将在函数外部定义的变量传入到该函数的声明和调用。 将光标置于局部函数名称上。 按 (Ctrl+.) 触发“快速操作和重构”菜单。 选择“将局部函数设置为 static
Make local function static
将局部函数设置为静态
  • 现在可以将变量显式传入局部静态函数。 将光标置于静态局部函数中的变量上。 按 (Ctrl+.) 触发“快速操作和重构”菜单。 选择“将变量显式传入局部静态函数”。
Pass a variable into a local static function
将变量传入本地静态函数

.NET 效率

  • 现在可以通过编辑器直接配置代码样式规则的严重性级别。 如果用户当前没有 .editorconfig 文件,将自动生成该文件。 请将光标置于错误、警告或建议上,然后键入 (Ctrl +.),以打开“快速操作和重构”菜单。 选择“配置或取消问题”。 然后选择规则并选择要为该规则配置的严重性级别。 这将使用规则的新严重性更新现有的 EditorConfig。 这也适用于第三方分析器。
Set rule severity directly through the editor
直接通过编辑器设置规则严重性
  • 你现在可以使用“Go To Base”命令向上导航到继承链。 要导航到继承层次结构的元素的上下文(右键单击)菜单上提供 Go To Base 命令。 也可以键入 (Alt+Home)。 如果结果不止一个,则会打开一个工具窗口,其中包含可以选择导航到其中的所有结果。
Go To Base
Go To Base
  • 你现在可以为所有参数添加 Null 检查。 这将添加用于检查所有可为空的、非选中参数是否为 Null 的 if 语句。 将光标置于方法中的任何参数上。 按 (Ctrl+.) 触发“快速操作和重构”菜单。 选择“为所有参数添加 Null 检查”选项。
Add null checks for all parameters
为所有参数添加 Null 检查
  • 无 XML 文档的方法现在可以从其覆盖的方法自动继承 XML 文档。 请将光标置于实现了已记录接口方法的未记录方法上。 然后,“快速信息”将显示接口方法中的 XML 文档。 还可使用 <inheritdoc> 标记从基类和接口中继承 xml 注释。 Docs 示例
XML inherit documentation
XML 继承文档

Xamarin

适用于 Xamarin.Forms 的 XAML 热重载

适用于 Xamarin.Forms 的 XAML 热重载可加快开发速度,让你在用户界面上能更轻松地进行构建、试验和迭代。 你不必在每次调整 UI 时都重新构建应用 - 它会在你运行的应用中立即显示你所作的更改。

Android 应用程序包发布

现可在 Visual Studio 中发布 Android 应用程序时创建 Android 应用程序包。 在从 Google Play Store 或各种 Android 应用商店下载应用时,应用程序包会根据用户的设备规格向其提供优化的 APK。

Android App Bundle Publishing
Android 应用程序包发布

AndroidX 迁移向导

现可使用 AndroidX 迁移向导将现有 Android 应用程序转换为 Android 支持库中的 AndroidX。

AndroidX Migration Wizard
AndroidX 迁移向导

Android 布局 Linting

现可在 Android Designer 中编辑布局时提供一组常见问题。

Android Layout Linting
Android 布局 Linting

Visual Studio 2019 版本 16.4 中已修复的主要问题


已知问题

单击以下链接,查看 Visual Studio 2019 版本 16.4 中的所有问题和可用解决办法。

Visual Studio 2019 Known Issues

反馈和建议

我们期待你的宝贵意见和建议! 如有问题,请通过安装程序或 Visual Studio IDE 右上角的“报告问题”选项告知我们。 Feedback Icon图标位于右上角。 可以在 Visual Studio 开发者社区中提出产品建议或跟踪问题,也可在其中提问、寻找答案和建议新功能。 此外,还可通过实时聊天支持获得免费安装帮助。


Blogs

通过参考开发人员工具博客网站中的见解和建议,随时掌握所有新版本的最新最全资讯,并发表有关大量功能的深入分析帖子。


Visual Studio 2019 发行说明历史记录

要详细了解 Visual Studio 2019 的历史版本,请查看 Visual Studio 2019 发行说明历史记录


返回页首