Visual 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 发行版
- 2021 年 10 月 12 日 — Visual Studio 2019 版本 16.4.27
- 2021 年 9 月 14 日 — Visual Studio 2019 版本 16.4.26
- 2021 年 8 月 10 日 — Visual Studio 2019 版本 16.4.25
- 2021 年 7 月 13 日 — Visual Studio 2019 版本 16.4.24
- 2021 年 6 月 8 日 — Visual Studio 2019 版本 16.4.23
- 2021 年 5 月 11 日 — Visual Studio 2019 版本 16.4.22
- 2021 年 4 月 13 日 — Visual Studio 2019 版本 16.4.21
- 2021 年 3 月 9 日 — Visual Studio 2019 版本 16.4.20
- 2021 年 2 月 10 日 — Visual Studio 2019 版本 16.4.19
- 2021 年 2 月 9 日 — Visual Studio 2019 版本 16.4.18
- 2021 年 1 月 12 日 — Visual Studio 2019 版本 16.4.17
- 2020 年 12 月 8 日 — Visual Studio 2019 版本 16.4.16
- 2020 年 11 月 10 日 — Visual Studio 2019 版本 16.4.15
- 2020 年 10 月 13 日 — Visual Studio 2019 版本 16.4.14
- 2020 年 9 月 8 日 — Visual Studio 2019 版本 16.4.13
- 2020 年 8 月 11 日 — Visual Studio 2019 版本 16.4.12
- 2020 年 7 月 14 日 — Visual Studio 2019 版本 16.4.11
- 2020 年 6 月 9 日 — Visual Studio 2019 版本 16.4.10
- 2020 年 5 月 27 日 — Visual Studio 2019 版本 16.4.9
- 2020 年 5 月 12 日 — Visual Studio 2019 版本 16.4.8
- 2020 年 4 月 14 日 — Visual Studio 2019 版本 16.4.7
- 2020 年 3 月 10 日 — Visual Studio 2019 版本 16.4.6
- 2020 年 2 月 11 日 — Visual Studio 2019 版本 16.4.5
- 2020 年 1 月 30 日 — Visual Studio 2019 版本 16.4.4
- 2020 年 1 月 14 日 — Visual Studio 2019 版本 16.4.3
- 2019 年 12 月 17 日 — Visual Studio 2019 版本 16.4.2
- 2019 年 12 月 10 日 — Visual Studio 2019 版本 16.4.1
- 2019 年 12 月 3 日 — Visual Studio 2019 版本 16.4.0
存档的版本说明
- Visual Studio 2019 版本 16.3 发行说明
- Visual Studio 2019 版本 16.2 发行说明
- Visual Studio 2019 16.1 版发行说明
- Visual Studio 2019 16.0 版发行说明
Visual Studio 2019 博客
可从 Visual Studio 2019 博客获取来自 Visual Studio 工程团队的官方产品见解。 有关 Visual Studio 2019 版的详细信息,可参阅以下文章:
- Visual Studio 2019 v16.4 发行版,圣诞季
- Visual Studio 2019 v16.4 预览版 2,秋日运动与南瓜风味
- Visual Studio 2019 版本 16.3 中的 .NET Core 支持及更多功能 - 立即更新!
- Visual Studio 2019 版本 16.3 预览版 2 和 Visual Studio 2019 for Mac 版本 8.3 预览版 2 现已发布!
- Visual Studio 2019 版本 16.2 和 16.3 预览版 1 现已推出
- Visual Studio 2019 版本 16.2 预览版 2
- Visual Studio 2019 版本 16.1 和预览版 16.2 预览
- Visual Studio 2019:更快速地编写代码。 更智能的工作。 开创未来。
请参阅 Visual Studio 2019 版本 16.4 中采用的所有开发人员社区项的完整列表
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 库中存在潜在的标志绕过漏洞。
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 中会存在远程代码执行漏洞。 成功利用此漏洞的攻击者可能会在当前用户的上下文中运行任意代码。
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 令牌,则记录该令牌时存在信息泄漏漏洞。
Visual Studio 2019 版本 16.4.24
发布时间:2021 年 7 月 13 日
Visual Studio 2019 版本 16.4.24 中已解决的首要问题
- .NET 3.1.117 SDK 已插入 Visual Studio 2019。
Visual Studio 2019 版本 16.4.23
发布日期:2021 年 6 月 08 日
Visual Studio 2019 版 16.4.23 中修复的首要问题
安全顾问公告
CVE-2021-31957 ASP.NET 拒绝服务漏洞
ASP.NET Core 未正确处理客户端断开连接问题时,存在拒绝服务漏洞。
Visual Studio 2019 版本 16.4.22
发布日期:2021 年 5 月 11 日
Visual Studio 2019 版 16.4.22 中修复的首要问题
- 修复了管理员创建用于部署更新的 Visual Studio 新布局时导致更新失败的问题。 由于布局已移动位置,客户端计算机更新将会失败。
安全顾问公告
CVE-2021-27068 在嵌套文件夹中植入 python.exe 时存在进行 RCE 的可能性
使用 python 代码打开工作区时存在远程代码执行漏洞,并且该工作区的脚本子文件夹中包含 python.exe。
CVE-2021-31204 .NET Core 特权提升漏洞
当用户在基于 Linux 或 macOS 的操作系统上运行单个文件应用程序时,.NET 5.0 和 .NET Core 3.1 中存在特权提升漏洞。
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 诊断中心标准收集器服务特权提升漏洞
如果诊断中心标准收集器对数据操作的处理不当,就会存在特权提升漏洞。
Visual Studio 2019 版本 16.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 中存在远程代码执行漏洞。
Visual Studio 2019 版本 16.4.19
发布时间:2021 年 2 月 10 日
Visual Studio 2019 版本 16.4.19 中已修复的主要问题
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 上运行的系统中。
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 的实现中存在拒绝服务漏洞。
Visual Studio 2019 版本 16.4.16
发布时间:2020 年 12 月 8 日
Visual Studio 2019 版本 16.4.16 中已修复的主要问题
安全顾问公告
CVE-2020-17156 Visual Studio 远程代码执行漏洞
当 Visual Studio 克隆恶意软件时,会存在远程代码执行漏洞。
Visual Studio 2019 版本 16.4.15
发布时间:2020 年 11 月 10 日
Visual Studio 2019 版本 16.4.15 中已修复的主要问题
安全顾问公告
CVE-2020-17100 Visual Studio 篡改漏洞
针对 Visual Studio 的 Python 工具创建 python27 文件夹时存在篡改漏洞。 成功利用此漏洞的攻击者可在提升的上下文中运行进程。
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)。
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 安装之外被删除,那么将不再在修复或升级期间重新安装它们。
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 应用程序拒绝服务。 可以远程利用漏洞,无需进行身份验证。
Visual Studio 2019 版本 16.4.11
发布时间:2020 年 7 月 14 日
Visual Studio 2019 版本 16.4.11 中已修复的主要问题
- 修复了一个偶尔发生的以下 bug:C/ C++ 的代码分析停止响应。
- 修复了可能在 setjmp 后还原错误的值这一 bug。
- 1.0 和 2.0 .NET Core 运行时在安装程序 UI 中被标记为“不支持”,并在所有场景中都设置为可选。
安全顾问公告
CVE-2020-1393 诊断中心标准收集器服务特权提升漏洞
当因 Windows 诊断中心标准收集器服务未能正确纠正输入而导致不安全的库加载行为时,则存在特权提升漏洞。
CVE-2020-1416 Visual Studio 特权提升漏洞
在 Visual Studio 中加载软件依赖项时,存在特权提升漏洞。
CVE-2020-1147 .NET Core 拒绝服务漏洞
未经过身份验证的远程攻击者可能通过向 ASP.NET Core 应用程序或其他分析特定 XML 类型的应用程序发布特制请求来利用此漏洞。 安全更新通过限制可在 XML 有效负载中呈现的类型来解决此漏洞。
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 诊断中心标准收集器服务特权提升漏洞
如果诊断中心标准收集器服务对文件操作的处理不当,就会存在特权提升漏洞。
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
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 请求的方式解决此漏洞。
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 被分析并发送至凭据帮助程序时,会出现凭据泄露漏洞。 这可能会导致凭据被发送到错误的主机。
Visual Studio 2019 版本 16.4.6
发布日期:2020 年 3 月 10 日
Visual Studio 2019 版本 16.4.6 中已修复的主要问题
- 编译错误,boolean 条件推导结果始终为 true。
- Visual Studio 2019 编译器中循环展开的问题
- 在 docker 卷文件夹中生成时,CL (VC v19.24) 崩溃
- 在 docker 容器中以 /ZI 参数开始时,CL (VC v19.22) 崩溃
- 用 MSVC 编译器 19.20 编译 SSE 内部函数:编译的代码在某个特定情况下生成不正确的结果
- C++ AMP 代码在 Visual Studio 2019 16.3.1 中不编译
- coroutine_handle<>::destroy() 有时会恢复协同例程,而不是销毁它。
- C++ 编译器中的新 Spectre 缓解选项:/Qspectre-load 和 /Qspectre-load-cf(用于强化推理负载)。
安全顾问公告
CVE-2020-0793 和 CVE-2020-0810 诊断中心标准收集器服务特权提升漏洞
当诊断中心标准收集器无法正确处理文件操作,或 Windows 诊断中心标准收集器服务无法正确纠正输入时,就存在特权提升漏洞。
CVE-2020-0884 在创建 Outlook Web 外接程序时存在欺骗漏洞
如果启用了多重身份验证,则在创建 Outlook Web 外接程序时存在欺骗漏洞,因为它包含不受 SSL 保护的回复 URL。 成功利用此漏洞的攻击者可以破坏访问令牌,从而导致安全和隐私风险。
CVE-2020-0789 Visual Studio Extension Installer 服务拒绝服务漏洞
当 Visual Studio Extension Installer 服务无法正确处理硬链接时,存在拒绝服务漏洞。 成功利用此漏洞的攻击者可能导致目标系统停止响应。
Visual Studio 2019 版本 16.4.5
发布时间:2020 年 2 月 11 日
Visual Studio 2019 版本 16.4.5 中已修复的主要问题
- 合并冲突:缺少“获取源”/“保留目标”
- 尝试调试 uwp 应用程序时服务崩溃
- 无法为数据库项目选择目标平台 azure v12
- 修复了在安装需要重启的操作后运行 Visual Studio 时可能发生的故障或错误。
- 解决了部署 Xamarin.Android 应用方面的问题。 这之前要求从设备或仿真器中手动卸载应用。
- 此更改修复了编译器有时可能在 C++ 协同例程中不当删除指令的一个 bug。
Visual Studio 2019 版本 16.4.4
发布日期:2020 年 1 月 30 日
Visual Studio 2019 版本 16.4.4 中已修复的主要问题
- 找不到自定义项目模板
- 在本机 C++ 代码中命中断点时,msvsmon.exe 崩溃
- 在解决方案资源管理器中搜索文件夹,然后单击主页或搜索框中“X”。 视图已重置。
- 外部工具参数当前行始终为零。
- 无法创建 v3 Function 项目。
- 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突。 更新到 VS 2019 Update 16.4.3 后
- 无法在 16.4 下创建函数应用
- MSVC2019 在 AVX/AVX2 模式下生成 AVX-512 指令
- rsqrtss 生成错误代码(寄存器强制改写)
- 查看 FastLink 调用堆栈时,Visual Studio 2019 调试程序崩溃。
- C#:修复了用特性构造函数修饰其本身并启用“可为 Null 的引用类型”时出现的故障。
- 修复了优化-分析的 bug:当我们展开循环时,将无法跟踪不确定长度的数组(声明为 extern int a [])的别名信息,导致可能删除不正确的无用存储区。
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 中已修复的主要问题
- DateTime.Now = 无法提供值: 未找到主机值
- MSVC codegen 错误向量 reverse_iterator x64 c + + 17 调试版本
- 在 VS 16.4 Preview 1 中用 /permissive- 生成 atlenc 时出现 C2440 错误
- 上次 Visual Studio 更新在 Android 上中断了 NTLM 身份验证(似乎是因为新版本的 Momo)
- Visual Studio 16.3.1 在编译模板代码时失败(例如使用 Basler Pylon SDK)
- 将 TypeScript 3.7 用于 IntelliSense
- XCode 11.3 更新到版本 8.4 之后太新
- 已上载 APK 或 Android 应用程序包,其中某些文件的签名信息无效或缺失。 需要创建有效的已签名 APK 或 Android 应用程序包。
- 无法运行 UWP 项目
- JavaScript IntelliSense 在更新到 16.4.1 后无法正常运行
- Xib:Xcode 是新的(使用自定义组件时呈现问题)
- 情节提要错误:“Xcode 太新”
- 调试 watchOS 应用程序的稳定性已增强。
- 添加了 Xcode 11.3 SDK 支持。
- 修复了启用 fstack-protector-strong 标记时出现的崩溃。
- 修复了 Debugger 不一致的行为。
Visual Studio 2019 版本 16.4.2
发布时间:2019 年 12 月 17 日
Visual Studio 2019 版本 16.4.2 中已修复的主要问题
- VS2019 预览版 4 中断了 C# 中的条件编译符号
- API 已弃用
- Android 调试在最新版本 16.4 中无法工作。“调试对象返回了错误代码 INVALID_ARGUMENT”
- 修复了使用编辑器时可能发生的频繁 UI 延迟。
- 修复了使用 C# 时用特性构造函数修饰其本身并启用“可为 Null 的引用类型”时出现的故障。
- 修复了导致特定虚拟机设置下加载 C# 解决方案时 Visual Studio 无法启动或崩溃的问题。
- 修复了重新打开生成属性页时用户定义的条件符合性符号丢失的 bug。
Visual Studio 2019 版本 16.4.1
发布时间:2019 年 12 月 10 日
Visual Studio 2019 版本 16.4.1 中已修复的主要问题
- 修复了尝试发布数据库时出现的以下错误:“写入操作失败。 必须先从 dataschemamodelcontroller 获得写入权限”
- 修复了在一些配置中使用 iOS 设备上的 SignalR 时出现的 ExecutionEngineException 异常
- 使用一些库启用解释器时出现“CEE_RET: 值类型堆栈”故障的运行时修复
- TypeScript 3.7.3 现已默认包含在内,其中包括针对影响 JavaScript 和 TypeScript 编辑体验的问题的一系列修补程序。
- 可以缓解 Visual Studio 中与每个监视器感知相关的故障
安全顾问公告
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 客机确认是否同意来解决此漏洞。
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 视图都将实时保持同步。
- 显示引用的程序集的资源: XAML IntelliSense 已更新,以支持在引用的程序集中显示 XAML 资源(如果源不可用),用于 WPF Framework 和 WPF .NET Core 项目。
XAML 调试工具
- 实时可视化树中的“仅我的 XAML”:Live Visual Tree 是一项功能,当 UWP 和 WPF 开发人员在调试模式下运行其应用程序时均可用该功能,并且该功能是与 XAML 热重载相关的实时编辑工具的一部分。 以前,该功能会显示所附加的运行应用程序的完整实时可视化树,无需任何筛选器即可查看你在应用程序中编写的 XAML。 这导致了杂乱的体验,并且根据客户反馈,我们添加了一个名为“仅我的 XAML”的新默认值,它会将树限制为仅在你的应用程序中编写的控件。 虽然这是新的默认设置,但仍可以通过分叉实时可视化树本身中的按钮或通过新设置返回到以前的行为(如下所示:“选项”>“调试”>“常规”>启用“仅我的 XAML”)
资源和模板
- 合并资源字典:现在,可以使用通过“解决方案资源管理器”提供的新功能轻松地将 UWP/WPF 项目中的现有资源字典与任何有效的 XAML 文件合并。 只需打开要在其中添加合并语句的 XAML 文件,然后查找要合并的文件,然后在“解决方案资源管理器”中右键单击该文件。 在上下文菜单中,选择“将资源字典合并到活动窗口”选项,该选项将添加带有路径的正确合并 XAML。
- 编辑模板现在适用于第三方控件中的控件:现在可以创建控件模板的副本,即使它不是作为源代码的解决方案的一部分。 通过此更改,“编辑模板”功能现在可供使用,并且可以像提供源的第一方元素一样使用。 请注意,此功能适用于第三方控件库和不提供源的第一方。
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 检查可以作为后台代码分析的一部分运行,显示为编辑器内的警告(波形曲线),并显示在错误列表中。
- Visual Studio CMake 项目现在提供概述页面,可帮助你开始进行跨平台开发。 这些页面是动态的,有助于连接到 Linux 系统并将 Linux 或 WSL 配置添加到 CMake 项目。
- CMake 项目的启动下拉菜单现在会显示最近使用的目标,并且可以进行筛选。
- C++/CLI 现在支持与 Windows 上的 .NET Core 3.1 和更高版本互操作。
- 现可为使用 Windows 上的 MSVC 编译的项目启用 ASan 以进行 C++ 代码的运行时检测,这有助于检测内存错误。
- MSVC 的 C++ 标准库的更新:
- 现已推出名为 C++ Build Insights 的新工具集合。 请参阅 C++ 团队博客以了解详细信息。
对发布到 GitHub 的支持
- Visual Studio 的 GitHub Essentials 现在包含适用于 Visual Studio 的 GitHub 扩展中的“发布到 GitHub”功能。
- 现可使用“团队资源管理器同步”页面上的“发布到 GitHub”按钮将本地 Git 存储库发布到 GitHub。
Visual Studio 中的垂直文档选项卡
在位于编辑器左侧或右侧的垂直列表中管理文档选项卡。
可固定属性调试工具
现在可以通过使用可固定属性功能将属性固定到“数据提示”或“监视”、“自动”和“局部变量”窗口的顶部,在调试时快速标识和检查对象。
容器工具窗口
- 可以列出、检查、停止、启动和删除容器
- 可以查看正在运行的容器的日志和文件内容,以及在容器中打开终端窗口
- 可以查看、检查和删除映像
自动隐藏工具窗口
启用此预览功能选项,可以避免由于在启动 Visual Studio 时打开多个工具窗口而引入的启动延迟。
.NET 效率
- 现在可以通过错误列表直接配置代码样式规则的严重性级别。 将光标置于错误、警告或建议上。 右键单击,然后选择“启动”。 然后选择要为该规则配置的严重性级别。 这将使用规则的新严重性更新现有的 EditorConfig。 这也适用于第三方分析器。
- 现在可以通过“查找所有引用”按类型和成员进行分组。
- 现在可以将局部函数设置为静态,并将在函数外部定义的变量传入到该函数的声明和调用。 将光标置于局部函数名称上。 按 (Ctrl+.) 触发“快速操作和重构”菜单。 选择“将局部函数设置为
static
”。
- 现在可以将变量显式传入局部静态函数。 将光标置于静态局部函数中的变量上。 按 (Ctrl+.) 触发“快速操作和重构”菜单。 选择“将变量显式传入局部静态函数”。
.NET 效率
- 现在可以通过编辑器直接配置代码样式规则的严重性级别。 如果用户当前没有 .editorconfig 文件,将自动生成该文件。 请将光标置于错误、警告或建议上,然后键入 (Ctrl +.),以打开“快速操作和重构”菜单。 选择“配置或取消问题”。 然后选择规则并选择要为该规则配置的严重性级别。 这将使用规则的新严重性更新现有的 EditorConfig。 这也适用于第三方分析器。
- 你现在可以使用“Go To Base”命令向上导航到继承链。 要导航到继承层次结构的元素的上下文(右键单击)菜单上提供 Go To Base 命令。 也可以键入 (Alt+Home)。 如果结果不止一个,则会打开一个工具窗口,其中包含可以选择导航到其中的所有结果。
- 你现在可以为所有参数添加 Null 检查。 这将添加用于检查所有可为空的、非选中参数是否为 Null 的 if 语句。 将光标置于方法中的任何参数上。 按 (Ctrl+.) 触发“快速操作和重构”菜单。 选择“为所有参数添加 Null 检查”选项。
- 无 XML 文档的方法现在可以从其覆盖的方法自动继承 XML 文档。 请将光标置于实现了已记录接口方法的未记录方法上。 然后,“快速信息”将显示接口方法中的 XML 文档。 还可使用
<inheritdoc>
标记从基类和接口中继承 xml 注释。 Docs 示例。
Xamarin
适用于 Xamarin.Forms 的 XAML 热重载
适用于 Xamarin.Forms 的 XAML 热重载可加快开发速度,让你在用户界面上能更轻松地进行构建、试验和迭代。 你不必在每次调整 UI 时都重新构建应用 - 它会在你运行的应用中立即显示你所作的更改。
Android 应用程序包发布
现可在 Visual Studio 中发布 Android 应用程序时创建 Android 应用程序包。 在从 Google Play Store 或各种 Android 应用商店下载应用时,应用程序包会根据用户的设备规格向其提供优化的 APK。
AndroidX 迁移向导
现可使用 AndroidX 迁移向导将现有 Android 应用程序转换为 Android 支持库中的 AndroidX。
Android 布局 Linting
现可在 Android Designer 中编辑布局时提供一组常见问题。
Visual Studio 2019 版本 16.4 中已修复的主要问题
- Visual Studio 2019 16.3.0 的代码生成错误
- 无法通过地址 XXX 和用户连接到 Mac 服务器…如果没有连接,则无法继续生成进程。
- MSVC 14.23.28019 编译 bug
- System.MethodAccessException:按方法尝试
- 转到定义时转到了 CRTP 方案中的错误定义
- VS2019 组合框的闪退问题 - VS2019 组合框存在问题
- “Visual Studio 反馈”登录失败,显示“未能获取文件锁定…AadConfiguration.lock”
- 无法加载 cmake 项目文件
- ftp 发布没有上传部分文件夹
- 强制收集 VS 系统日志
- 无法从命令行启动 Visual Studio 2019 来加载 CMake 项目。
- VS 反馈工具在尝试裁剪不存在的屏幕截图时出现崩溃
- 我无法使用代理搜索和提交反馈
- 导航到定义查找符号结果不会列出正确的符号
- 单击引用数时,Visual Studio 2019 不断崩溃
- 运行所选代码生成器时出现“序列不包含任何匹配元素”错误
- 打印类图
- 对 SSDT 的 ADD SENSITIVITY CLASSIFICATION 语句支持
- 反馈工具不适用于高对比度黑色主题
- 测试资源管理器未能打开
- 在存储库更新后保留单元测试状态
- 在 Mono 6.4 中引入了显式接口 bug
- “为 Linux 开发设置项目”时,Debug/Arm 的设计生成错误。
- 在 VSTO 加载项中,VS 不允许我创建新的 WPF 类
- 上次 Visual Studio 更新在 Android 上中断了 NTLM 身份验证(似乎是因为新版本的 Momo)
- 在不对源文件进行任何更改的情况下,“进行了无法编译的编辑”。
- “生成开始时显示输出窗口”无法正常工作
- 可以在项目文件中设置 runsettings
- C++ 荧光笔在出现“NullReferenceException 类型的异常”之后部分停止工作
- 按分号关闭智能感知,而不是实际输入。
- 自动将 ANSI .rc 文件转换为 UTF8!!! (不需要!!!)
- 启用“调试停止时自动关闭控制台”选项后,Azure Functions 项目永远不会遇到断点
- 从 Razor Pages 项目添加区域将引发“没有支持此项的基架。”
- vs2017rc“编辑并继续”不工作
- 非 WPF 自动隐藏工具窗口有时会引发初始化错误
- 调试程序引发的空引用异常
- 对使用预编译标头的项目使用 clang-tidy 时出现问题
- 无法创建 iOS 存档 - 无法在 XMA 服务器上执行进程(路径或文件名太长)
- Visual Studio 在使用 git blame 时冻结
- 测试菜单中缺少“分析代码覆盖率”
- C++ VS2019 上的 Intellisense 报告 VS2017 上的 Intellisense 不会报告的不正确的错误
- 可以通过比较运算符隐式调用显式运算符 bool
- CodeLens 不起作用
- 非常脆弱的 ICE
- 灾难性错误 C1001:通过 DEBUG 版本在 MFC 宏 ON_COMMAND_RANGE() 中使用 constexpr 模板函数时
- 在解决方案资源管理器关闭时与活动文档同步会选中所有文件
- 结构化绑定的 Alignas (C++17) 不起作用
- VS2019 C++ 无法特殊化 SFINAE(回归)
- C++ CLI Intellisense 错误地警告称属性没有“set”访问器
- Xamarin fastlane:“同步开发人员信息时出错:‘达到 iTunes 的请求数限制连接’。”
- Intellisense 工具提示显示不完整
- C++ 控件关键字没有在 IntelliSense 成员列表建议中显示
- XAML UI 调试工具 -“启用选定内容”按钮无法正常工作
- 使用多个参数调用函数时,函数参数列表在弹出窗口中显示不完整。
- 用与运算符 v2 设置格式的代码错误
- 对 nodiscard 的支持的检测不正确且显示了原因
- Intellisense 看不到 CMake 项目的 WSL 配置的 vcpkg 包含目录
- error LNK2005: "__cdecl Windows::Foundation::operator co_await(struct Windows::Foundation::IAsyncAction ^)" (?? __LFoundation@Windows@@YA@PE$AAUIAsyncAction@01@@Z) already defined in pch.obj
- VS2019 #pragme 消息显示异常-VS2019 #pragme 消息显示异常
- 标识符标记
- VCManagedPackage 包在联接 LiveShare 会话时未正确加载
- VS2019 16.2.1 #pragme 消息显示异常
- VS2019 Win10 1703 建模 SDK DiagramClientView 在重载时空白
- C++/CLR + .Net Core 在 Visual Studio 中崩溃
- C++:针对结构复制操作的生成错误
- “禁用诊断”工具资源限制不是永久性的
- 测试资源管理器/CMake 正在运行测试之前搜索测试
- VS2019 预览版 xaml 片段行和列不适用于 IntelliSense
- VS2019 16.3 似乎错误地检测到 Windows 7 64 位上不存在的 AVX512
已知问题
单击以下链接,查看 Visual Studio 2019 版本 16.4 中的所有问题和可用解决办法。
反馈和建议
我们期待你的宝贵意见和建议! 如有问题,请通过安装程序或 Visual Studio IDE 右上角的“报告问题”选项告知我们。 图标位于右上角。 可以在 Visual Studio 开发者社区中提出产品建议或跟踪问题,也可在其中提问、寻找答案和建议新功能。 此外,还可通过实时聊天支持获得免费安装帮助。
Blogs
通过参考开发人员工具博客网站中的见解和建议,随时掌握所有新版本的最新最全资讯,并发表有关大量功能的深入分析帖子。
Visual Studio 2019 发行说明历史记录
要详细了解 Visual Studio 2019 的历史版本,请查看 Visual Studio 2019 发行说明历史记录。