注释
不再支持此版本的 Visual Studio 2019。 支持的最新版本为 16.11。 更新安装或升级到 最新版本的 Visual Studio ,以保持受支持。
有关 Visual Studio 2019 的所有发行说明的列表,请参阅 发布历史记录页。
重要
这不是 Visual Studio 的最新版本。 若要下载最新版本,请访问 https://visualstudio.microsoft.com/downloads/ 并查看 Visual Studio 2022 发行说明。
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 博客
可从 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 中解决的首要问题
- 修复了影响更新命令的命令行执行的问题。 如果第一次更新失败,那么之后再次发出更新命令现在会使更新从其停止的地方继续先前的操作。
安全顾问公告
CVE-2021-26423 .NET Core 拒绝服务漏洞
存在拒绝服务漏洞,其中提供 WebSocket 终结点的 .NET(Core) 服务器应用程序在尝试读取单个 WebSocket 帧时可能会陷入无休止的循环。
CVE-2021-34485 .NET Core 信息泄露漏洞
在 Linux 和 macOS 上,当工具为收集故障转储和按需转储而创建的转储具有全局读取权限时,会存在信息泄露漏洞。
CVE-2021-34532 ASP.NET 核心信息泄露漏洞
如果无法分析 JWT 令牌,则存在信息泄露漏洞。
Visual Studio 2019 版本 16.4.24
发布日期:2021 年 7 月 13 日
Visual Studio 2019 版本 16.4.24 中解决的首要问题
- 已集成到 Visual Studio 2019 的 .NET 3.1.117 SDK。
Visual Studio 2019 版本 16.4.23
发布日期:2021 年 6 月 8 日
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 版本 16.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 版本 16.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 月 9 日
Visual Studio 2019 版本 16.4.18 中修复的首要问题
安全顾问公告
CVE-2021-1639 TypeScript 语言服务远程代码执行漏洞
当 Visual Studio 加载包含 JavaScript 或 TypeScript 代码文件的恶意存储库时,存在远程代码执行漏洞。
CVE-2021-1721 .NET Core 拒绝服务漏洞
在 X509 证书链生成期间创建 HTTPS Web 请求时,存在拒绝服务漏洞。
CVE-2021-24112 .NET 5 和 .NET Core 远程代码执行漏洞
当在图形接口仍然引用图元文件的情况下处理这些文件时,存在远程代码执行漏洞。 此漏洞仅存在于 MacOS 或 Linux 上运行的系统上。
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 中修复的首要问题
- 添加了一个可选择启用的标志,以缓解 JCC erratum 对某些 Intel 处理器造成的性能影响。
- PGO MEMMAX 开关的行为现在应更有可能尊重用户输入。
- 为 PGO 分析保留的内存量已减少。
- .NET Core 2.1.13 运行时和 3.1.109 SDK (3.1.9) 已添加到 Visual Studio 2019。
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 核心安全功能绕过漏洞
Microsoft ASP.NET Core 解析编码 Cookie 名称的方式存在安全功能绕过漏洞。 ASP.NET 核心 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 中已修复的首要问题
- 修复了 C/C++代码分析偶尔停止响应的问题。
- 修复了 setjmp 后可能会还原错误值的 bug。
- 1.0 和 2.0 .NET Core 运行时在设置界面中标记为“停止支持”,并且在所有情况下都是可选的。
安全顾问公告
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 中修复的首要问题
- 这修复了优化使用的分析中的缓存错误,结果是我们删除了那些被错误标记为不需要的指令。 解决方法是检测将过时数据存储到缓存的情况。 这种情况发生时很难准确描述,但在报告中,它是在循环中索引的取模运算符。 为了未来的计划,我们添加了不受支持的 /d2ssa-bit-estimator- 标志,以完全关闭特定的优化。 此标志已随修补程序一起添加,在早期版本中不存在。
- 添加了用于缓解某些 Intel 处理器中 Intel 跳转条件代码 (JCC) erratum 微代码更新导致的性能影响的支持。
- 修复了在代码分析期间,由 lambda 局部变量导致的虚假 C6244 警告和 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 Core 应用程序发出特制的请求来利用此漏洞。 安全更新通过更正 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 扩展安装程序服务特权提升漏洞
当 Visual Studio 扩展安装程序服务对文件操作处理不当时,会导致出现特权提升漏洞。 成功利用漏洞的攻击者可能会删除具有提升权限的任意位置的文件。
CVE-2020-5260 Git for Visual Studio 凭据泄漏漏洞,因为 URL 验证不足
当解析特制的URL并将其发送到凭据助手时,存在凭据泄漏漏洞。 这可能会导致凭据发送到错误的主机。
Visual Studio 2019 版本 16.4.6
发布日期:2020 年 3 月 10 日
Visual Studio 2019 版本 16.4.6 中修复的首要问题
- 错误编译,布尔条件被推断为始终为 true。
- Visual Studio 2019 编译器中的循环展开问题
- 在 docker 卷文件夹中构建时,CL(VC v19.24)会崩溃
- CL (VC v19.22) 在 docker 容器中以 /ZI 参数开头时崩溃
- 使用 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 -Add-in 时欺骗漏洞
如果启用了多重身份验证,则创建 Outlook Web-Addin 时存在欺骗漏洞,因为它包含不受 SSL 保护的答复 URL。 成功利用此漏洞的攻击者可能会破坏访问令牌,暴露安全和隐私风险。
CVE-2020-0789 Visual Studio 扩展安装程序服务拒绝服务漏洞
当 Visual Studio 扩展安装程序服务处理硬链接时,存在拒绝服务漏洞。 成功利用漏洞的攻击者可能导致目标系统停止响应。
Visual Studio 2019 版本 16.4.5
发布日期:2020 年 2 月 11 日
Visual Studio 2019 版本 16.4.5 中修复的首要问题
- 合并冲突:缺少“获取源”/“保留目标”
- 尝试调试 uwp 应用程序时崩溃
- 无法为数据库项目选择目标平台 Azure v12
- 修复了在执行需要重新启动的安装操作后运行 Visual Studio 时可能发生崩溃或错误的问题。
- 修复了部署 Xamarin.Android 应用时出现问题。 这显然需要从设备或模拟器中手动卸载应用。
- 此次更改修复了一个问题,其中编译器有时可能会错误地删除C++协程中的指令。
Visual Studio 2019 版本 16.4.4
发布日期:2020 年 1 月 30 日
Visual Studio 2019 版本 16.4.4 中修复的首要问题
- 找不到自定义项目模板
- 在本机C++代码中触发断点时,msvsmon.exe崩溃
- 在解决方案资源管理器中搜索文件夹,然后单击搜索框中的“开始”或“X”。 视图已重置。
- 外部工具参数当前行始终为零。
- 无法创建 v3 函数项目。
- 访问冲突读取位置0xFFFFFFFFFFFFFFFF。 更新到 VS 2019 Update 16.4.3 之后
- 无法在 16.4 下创建函数应用
- MSVC2019在 AVX/AVX2 模式下生成 AVX-512 指令
- 使用 rsqrtss 生成代码时出现错误(注册 clobber)
- 查看 FastLink 调用堆栈时,Visual Studio 2019 调试器崩溃。
- C#:修复了一个崩溃问题,该问题发生在属性构造函数用其自身装饰且启用了可空引用类型时。
- 修复了优化分析中的一个错误:在进行循环展开时,我们会丢失不确定长度数组(声明为 extern int a[])的别名信息,从而导致可能出现错误的死存储删除。
Visual Studio 2019 版本 16.4.3
发布日期:2020 年 1 月 14 日
安全顾问公告
CVE-2020-0602 ASP.NET 核心拒绝服务漏洞
远程未经身份验证的攻击者可以通过向 ASP.NET Core 应用程序发出特制的请求来利用此漏洞。 安全更新通过更正 ASP.NET Core Web 应用程序处理 Web 请求的方式来解决漏洞。
CVE-2020-0603 ASP.NET 核心远程代码执行漏洞
远程未经身份验证的攻击者可以通过向 ASP.NET Core 应用程序发出特制的请求来利用此漏洞。 安全更新通过更正 ASP.NET Core Web 应用程序在内存中处理的方式来解决漏洞。
CVE-2020-0605 .NET Core 远程代码执行漏洞
利用漏洞需要用户打开具有受影响版本的 .NET Core 的特制文件。 在电子邮件攻击方案中,攻击者可以通过向用户发送专门制作的文件并说服用户打开文件来利用漏洞。安全更新通过更正 .NET Core 如何检查文件的源标记来解决漏洞。
CVE-2020-0606 .NET Core 远程代码执行漏洞
利用漏洞需要用户打开具有受影响版本的 .NET Core 的特制文件。 在电子邮件攻击方案中,攻击者可以通过向用户发送专门制作的文件并说服用户打开文件来利用漏洞。安全更新通过更正 .NET Core 如何检查文件的源标记来解决漏洞。
Visual Studio 2019 版本 16.4.3 中已修复的首要问题
- DateTime.Now = 无法提供值:找不到主机值
- MSVC codegen 错误向量reverse_iterator x64 C++17 调试生成
- 在 VS 16.4 预览版 1 中使用 /permissive- 生成 atlenc.h 时出现 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 项目
- 更新 16.4.1 后 JavaScript IntelliSense 无法正常工作
- Xib:Xcode 新版本在使用自定义组件时渲染问题
- 情节提要错误:“Xcode 太新了”
- 调试 watchOS 应用程序的稳定性改进。
- 添加 Xcode 11.3 SDK 支持。
- 修复了启用 fstack-protector-strong 标志时崩溃。
- 修复了调试器的某些不一致行为。
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# 时,属性构造函数被重复自身修饰,并启用可空引用类型时导致的崩溃。
- 在某些虚拟机设置下,修复了导致 Visual Studio 无法启动或在加载 C# 解决方案时崩溃的问题。
- 修复了用户定义的条件编译符号在重新打开构建属性页时丢失的错误。
Visual Studio 2019 版本 16.4.1
发布日期:2019 年 12 月 10 日
Visual Studio 2019 版本 16.4.1 中修复的首要问题
- 修复了“写入操作失败”。 在尝试发布数据库时出现“必须首先从数据模式模型控制器获取写入访问权限”的错误。
- 在某些配置中,解决 iOS 设备上使用 SignalR 时出现的 ExecutionEngineException 异常问题。
- 使用某些库启用解释器时,运行时修复了“CEE_RET:值类型堆栈”崩溃
- TypeScript 3.7.3 现在默认包含,其中包含多个影响 JavaScript 和 TypeScript 编辑体验的问题修补程序。
- 可能允许缓解 Visual Studio 中与 Per-Monitor 感知相关的崩溃
安全顾问公告
CVE-2019-1349 Git for Visual Studio 远程执行漏洞,因为对子模块名称的限制过于宽松
当 Git 遇到同级子模块目录子模块名称冲突时,存在远程代码执行漏洞。 成功利用此漏洞的攻击者可以在目标计算机上远程执行代码。 安全更新通过采用新版本的 Git for Windows 来解决漏洞,该版本要求子模块克隆的目录为空。
CVE-2019-1350 Git for Visual Studio 远程执行漏洞,由于命令行参数引用不当
当 Git 在递归克隆过程中解释带有特定引号的命令行参数与 SSH URL 结合使用时,会存在远程代码执行漏洞。 成功利用此漏洞的攻击者可以在目标计算机上远程执行代码。 安全更新通过采用 Windows 的新版本 Git 来解决漏洞,此版本修复了这一问题。
CVE-2019-1351 Git for Visual Studio 任意文件覆盖漏洞,因在克隆过程中使用非字母驱动器名称
当非字母开头的驱动器名称绕过 git clone中的安全检查时,Git 中存在任意文件覆盖漏洞。 成功利用此漏洞的攻击者可以写入目标计算机上的任意文件。 安全更新通过采用 Windows 的新版本 Git 来解决漏洞,此版本修复了这一问题。
CVE-2019-1352 由于不知道 NTFS 备用数据流,Git for Visual Studio 远程执行漏洞
通过 NTFS 备用数据流克隆和写入 .git/ 目录时,Git 中存在远程代码执行漏洞。 成功利用此漏洞的攻击者可以在目标计算机上远程执行代码。 安全更新通过采用新版本的 Git for Windows 来解决漏洞,该版本已注意到 NTFS 备用数据流。
CVE-2019-1354 Git for Visual Studio 存在任意文件覆盖漏洞,原因是不拒绝写出包含反斜杠的已跟踪文件
当具有反斜杠和恶意符号链接的树项可能会逃逸工作树时,Git 中存在任意文件写入漏洞。 成功利用此漏洞的攻击者可以写入目标计算机上的任意文件。 安全更新通过采用不允许反斜杠这种使用的新版本的 Git for Windows 来解决漏洞。
CVE-2019-1387 由于在递归克隆中对子模块名称的验证过于宽松,导致 Git for Visual Studio 出现远程执行漏洞
使用子模块以递归方式克隆时,Git 中存在远程代码执行漏洞。 成功利用此漏洞的攻击者可以在目标计算机上远程执行代码。 安全更新通过采用新版本的 Git for Windows 来解决漏洞,该版本会收紧对子模块名称的验证。
CVE-2019-1486 Live Share 扩展 URL 重定向漏洞
当连接到 Live Share 会话的来宾重定向到会话主机指定的任意 URL 时,Visual Studio Live Share 扩展中检测到欺骗漏洞。 攻击者能够成功利用此漏洞,并导致来宾的计算机打开浏览器并导航到恶意 URL,而无需明确同意。 这是 Live Share 的“共享服务器”功能的一部分,该功能允许在活动 Live Share 会话期间进行自动端口转发。 最新的更新通过在浏览主机指定的 URL 之前提示 Live Share 来宾同意来解决此漏洞。
Visual Studio 2019 版本 16.4
发布日期:2019 年 12 月 3 日
Visual Studio 2019 版本 16.4 中的新增功能摘要
- Visual Studio 现在支持 “FIPS 符合性模式”
- XAML 设计器的缩放/位置现在默认为“适合所有”。
- 已添加“创建数据绑定”对话框。
- 对区域 IntelliSense 的改进
- XAML IntelliSense 中的代码片段
- 将 XAML 编辑器作为设计器的单独窗口弹出
- 显示引用程序集的资源
- 实时可视化树中的 Just My XAML
- 合并资源字典
- 支持 XAML 岛功能
- 编辑模板现在适用于第三方控件中的 controsl。
- 在 Clang 和 MSVC 的 C++ MSBuild 和 CMake 项目中支持Clang-Tidy。
- AddressSanitizer 支持用于在 Windows 上通过 MSVC 编译的项目。
- 支持 将本地 Git 存储库发布到 GitHub。
- 使用 垂直文档选项卡将文档选项卡更改为垂直布局。
- 此版本中的 .NET Productivity 新增功能包括能够在错误列表中直接配置代码样式规则的严重性级别,“查找所有引用”现在可以选择按类型和成员进行分组,以及重构以将本地函数静态化,并将函数外部定义的变量传递给函数的声明和调用。
- 使用新的 可固定属性 功能快速自定义对象在调试器窗口中的显示方式。
- 容器工具窗口 增加了检查、停止、启动和删除 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 开始,Visual Studio 2019 在开发适用于 Windows、Azure 和 .NET 的应用和解决方案时,现在支持 “FIPS 140-2 符合性模式 ”。 为 Linux、iOS 或 Android 等非Microsoft平台开发应用或解决方案时,这些平台可能不会使用 FIPS 140-2 批准的算法。 Visual Studio 附带的第三方软件或安装的扩展也可能不使用 FIPS 140-2 批准的算法。 此外, SharePoint 解决方案的开发 不支持 FIPS 140-2 符合性模式。
若要为 Visual Studio 配置 FIPS 140-2 符合性模式,请安装 .NET Framework 4.8 并启用 Windows 组策略设置:“系统加密:使用符合 FIPS 的算法进行加密、哈希和签名。
WPF/UWP 工具
生成 WPF/UWP 应用程序的客户将在 Visual Studio XAML 工具中看到以下改进:
设计师
- XAML 设计器缩放/位置现在默认为“全部拟合”: 根据客户反馈,我们重新评估了打开 XAML 窗口/页面/控件/等时发生的默认 XAML 设计器缩放行为。上一次经验将每个文件的缩放级别和位置存储在 Visual Studio 会话中,这在客户在经过一段时间后返回到文件时引起了混淆。 从此版本开始,我们将仅在活动会话期间存储缩放级别和位置,并在 Visual Studio 重新启动后返回到“适合所有”默认值。
- “创建数据绑定”对话框: Visual Studio 通过右键单击 XAML 设计器和属性资源管理器向 WPF .NET Framework 开发人员提供了一个数据绑定对话框,并且此对话框以前也可供 UWP 开发人员使用。 在此版本中,我们将此体验带回 UWP 开发人员,并添加对 WPF .NET Core 应用程序的支持。 此功能仍在开发中,将来将继续改进,以实现与 .NET Framework 对话功能的功能对等。
XAML 编辑器
- #regions IntelliSense 的改进: 从 Visual Studio 2015 开始, 对 #region 的支持已提供给 WPF 和 UWP XAML 开发人员,且最近扩展到 Xamarin.Forms。 在此版本中,我们修复了 IntelliSense 的一个错误。通过这次修复,#regions 会在您开始键入 < 时正确显示。
- XAML IntelliSense 中的代码片段: IntelliSense 已得到增强以支持显示 XAML 代码段,这适用于内置代码段和手动添加的任何自定义代码段。 从此版本开始,我们还将提供一些开箱即用的 XAML 代码片段:#region、列定义、行定义、Setter 和 Tag。
- 将 XAML 编辑器作为设计器的单独窗口弹出: 现在,可以使用 XAML 选项卡旁边的新弹出 XAML 按钮轻松将 XAML 设计器及其基础 XAML 编辑器拆分为单独的窗口。单击 XAML 设计器时,将最小化其附加的 XAML 选项卡,并弹出只打开 XAML 编辑器视图的新窗口。 可以将此新窗口移动到 Visual Studio 中的任何显示或选项卡组。 请注意,仍然可以展开原始 XAML 视图,但无论如何,同一文件的所有 XAML 视图都将实时保持同步。
- 显示引用的程序集资源: XAML IntelliSense 现在支持显示来自引用的程序集(当源不可用)的 XAML 资源,以用于 WPF 框架和 WPF .NET Core 项目。
XAML 调试工具
- 实时可视化树中的“Just My XAML”功能:实时可视化树是当 UWP 和 WPF 开发人员在调试模式下运行其应用程序时可以使用的功能,并且是与 XAML 热重载相关的实时编辑工具的一部分。 以前,此功能将显示所附加正在运行的应用程序的完整实时动态可视化树,且没有过滤器可用以仅查看您在应用程序中编写的 XAML。 这导致了非常嘈杂的体验,并且根据客户反馈,我们添加了一个名为“Just My XAML”的新默认设置,将树限制为仅显示您在应用程序中编写的控件。 虽然这是新的默认值,但仍可以通过 tine Live Visual Tree 本身中的按钮或新设置(在“选项 > 调试 > 常规 > 启用仅我的 XAML”下找到)返回到以前的行为。
资源和模板
- 合并资源字典: 现在,可以使用解决方案资源管理器提供的新功能轻松将 UWP/WPF 项目中的现有资源字典与任何有效的 XAML 文件合并。 只需打开要在其中添加合并语句的 XAML 文件,即可找到要合并的文件,并在解决方案资源管理器中右键单击该文件。 在上下文菜单中,选择“将资源字典合并到活动窗口中”选项,该选项将添加正确的合并 XAML 和路径。
- 编辑模板现在适用于第三方控件中的控件: 现在,即使它不是解决方案的一部分,也可以创建控件模板的副本作为源代码。 通过此更改,“编辑模板”功能现在将可用,并且将像当前提供源代码的第一方元素一样工作。 请注意,此功能适用于第三方和第一方(官方)控件库,在源代码不可用的情况下。
XAML Islands
- 改进了 XAML 岛支持: 我们添加了对 Windows 窗体和 WPF .NET Core 3 应用的 XAML 岛方案的支持,以便更轻松地将 UWP XAML 控件添加到这些应用程序中。 通过这些改进,.NET Core 3 项目可以引用包含自定义 UWP XAML 控件的 UWP 项目。 Windows Community Toolkit v6 中随附的 WindowsXamlHost 控件可以使用这些自定义控件(Microsoft.Toolkit.Wpf.UI.XamlHost v6.0)。 还可以使用 Windows 应用程序打包项目为 .NET Core 3 和 Islands 生成 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 支持区
- 发布到 GitHub 功能是 Visual Studio GitHub 扩展 的一部分,现在包含在 Visual Studio 的 GitHub Essentials 中。
- 现在,可以使用团队资源管理器同步页上的“发布到 GitHub”按钮将本地 Git 存储库发布到 GitHub。
Visual Studio 中的垂直文档选项卡
在编辑器左侧或右侧的垂直列表中管理文档选项卡。
可固定属性调试工具
现在,可以使用可固定属性功能将属性固定到数据提示或监视、自动和局部变量窗口顶部,从而在调试时快速识别和检查对象。
“容器”工具窗口
- 可以列出、检查、停止、启动和删除容器
- 可以查看正在运行的容器的日志和文件内容,以及打开容器中的终端窗口
- 可以查看、检查和删除图像
自动隐藏工具窗口
启用此预览功能选项可以跳过通过打开多个工具窗口启动 Visual Studio 引入的启动延迟。
.NET 效率
- 现在可以直接通过错误列表配置代码样式规则的严重性级别。 将光标置于错误、警告或建议上。 右键单击并选择“ 设置严重性”。 然后选择要为该规则配置的严重性级别。 这将用规则更新后的严重性更新您现有的 EditorConfig。 这也适用于第三方分析器。
- “查找所有引用”现在允许按类型和成员进行分组。
- 现在可以将本地函数设置为静态函数,并将在函数外部定义的变量传递给函数的声明和调用。 将光标置于本地函数名称上。 按(Ctrl+.)触发“快速操作”和“重构”菜单。 选择 “生成本地函数
static”。
- 现在可以将变量显式传递到本地静态函数中。 将光标置于静态局部函数中的变量上。 按(Ctrl+.)触发“快速操作”和“重构”菜单。 选择在本地静态函数中显式传递变量。
.NET 效率
- 现在可以直接通过编辑器配置代码样式规则的严重性级别。 如果用户当前没有 .editorconfig 文件,则会为其生成一个文件。 将光标置于错误、警告或建议上,然后键入(Ctrl+.)以打开 “快速操作和重构” 菜单。 选择“配置或取消问题”。 然后选择该规则,然后选择要为该规则配置的严重性级别。 这将用规则更新后的严重性更新您现有的 EditorConfig。 这也适用于第三方分析器。
- 现在可以使用 “转到基类” 命令在继承链上导航。 “转到基”命令在要导航继承层次结构的元素的上下文(右键单击)菜单上可用。 或者可以键入 (Alt+Home)。 如果有多个结果,工具窗口将打开,其中包含可以选择导航到的所有结果。
- 现在可以为所有参数添加 null 检查。 这将添加 if 语句来检查所有可为空且未检查的参数的 null 性。 将光标置于方法中的任何参数上。 按(Ctrl+.)触发“快速操作”和“重构”菜单。 选择“添加所有参数的 null 检查”选项。
- 没有 XML 文档的方法现在可以从它所重写的方法中自动继承 XML 文档。 将光标置于实现已记录接口方法的未文档化方法上。 然后,快速信息将显示接口方法中的 XML 文档。 还可以从基类和带有标记的
<inheritdoc>接口继承 xml 注释。 Docs 示例。
Xamarin
适用于 Xamarin.Forms 的 XAML 热重载
适用于 Xamarin.Forms 的 XAML 热重载 可加快开发速度,并更轻松地在用户界面上生成、试验和迭代。 每次调整 UI 时,都无需重新生成应用 , 它立即显示正在运行的应用中的更改。
Android 应用捆绑包发布
现在可以在 Visual Studio 中发布 Android 应用程序时创建 Android 应用捆绑包。 从 Google Play 应用商店或各种 Android 应用商店下载应用时,应用捆绑包为用户提供了针对其设备规范的优化 APK。
AndroidX 迁移向导
现在可以使用 AndroidX 迁移向导将现有 Android 应用程序从 Android 支持库转换为 AndroidX。
Android 布局 Linting
现在,为您提供了一组在 Android 设计器中编辑布局时常见的问题。
Visual Studio 2019 版本 16.4 中修复的首要问题
- Visual Studio 2019 16.3.0 的代码生成不正确
- 无法使用地址 XXX 和用户 ... 连接到 Mac 服务器。未建立连接,构建过程无法继续。
- MSVC 14.23.28019 编译错误
- System.MethodAccessException:按方法尝试
- 转到定义在 CRTP 情况下指向错误的定义
- VS2019 ComboBox的闪退问题
- Visual Studio Feedback 登录失败,因为“未能获取文件锁...AadConfiguration.lock”
- 无法加载 cmake 项目文件
- ftp 上传不会上传所有文件夹
- VS 系统日志的强制收集
- 从命令行启动 Visual Studio 2019 以加载 CMake 项目不起作用。
- 尝试裁剪不存在的屏幕截图时,VS 反馈工具崩溃
- 在代理服务器后搜索和提交反馈对我不起作用
- 导航至定义时,“查找符号结果”未正确列出符号
- Visual Studio 2019 在单击引用数时一致崩溃
- 运行所选代码生成器“序列不包含匹配元素”时出错
- 打印类图
- 为 SSDT 添加对 SENSITIVITY CLASSIFICATION 语句的支持
- 反馈工具不应用黑色高对比度主题
- 测试资源管理器窗口无法打开
- 在存储库更新后保留单元测试状态
- 在 Mono 6.4 中引入的显式接口错误
- 在为 Linux 开发设置项目时,Design-Build 调试/Arm 出现错误。
- 在 VSTO 外接程序中,VS 不允许我创建新的 WPF 类
- 上一次 Visual Studio 更新在 Android 上中断了 NTLM 身份验证(似乎新版本的 Momo 是原因)
- 无需对源文件进行任何更改,“进行了无法编译的编辑。”
- “生成启动时显示输出窗口”无法正常工作
- 能够在项目文件中设置 runsettings
- “NullReferenceException” 类型异常后,C++高亮功能部分失效
- 按分号会关闭 intellisense,而不是实际键入它。
- 自动 ANSI .rc 文件转换为 UTF8 !! (不希望!!)
- 启用“调试停止时自动关闭控制台”选项后,Azure Functions 项目不会触发断点。
- 当从 Razor Pages 项目中添加区域时,会出现错误信息:“没有支持此项的基架”。
- vs2017rc 编辑并继续工作
- 非 WPF 自动隐藏工具窗口有时可能会引发初始化错误
- 由调试器引发的空引用异常
- 在使用预编译头文件的项目中使用 clang-tidy 的问题
- 无法创建 iOS 存档 - 无法在 XMA 服务器上执行进程(路径或文件名太长)
- 在使用 git blame 时 Visual Studio 冻结
- 测试菜单中缺少“分析代码覆盖率”
- VS2019 上的 C++ Intellisense 报告了一些 VS2017 的 Intellisense 不报告的错误
- 显式运算符 bool 可以通过比较运算符隐式调用
- CodeLens 不起作用
- 非常脆弱的 ICE
- 致命错误 C1001:在使用 MFC 宏 ON_COMMAND_RANGE() 时利用 constexpr 模板函数,并与 DEBUG 版本配合使用时出错
- 关闭解决方案资源管理器时与活动文档同步会选择所有文件
- 结构化绑定中的 Alignas(C++17)不起作用
- VS2019 C++未能专门化 SFINAE (回归)
- C++ CLI Intellisense 错误地警告属性没有“set”访问器
- Xamarin fastlane:“同步开发人员信息时出错:”达到 iTunes Connect 的请求数限制”。
- Intellisense 工具提示截断
- C++控件关键字未显示在 IntelliSense 成员列表建议中
- XAML UI 调试工具 - “启用选择”按钮未正常工作
- 调用具有多个参数的函数时,函数参数列表不会完全显示在弹出窗口中。
- 使用与运算符 v2 设置错误的代码格式
- 由于原因错误地检测到对 nodiscard 的支持
- Intellisense 在 CMake 项目的 WSL 配置中看不到 vcpkg 包含路径
- 错误LNK2005:“__cdecl Windows::Foundation::operator co_await(结构 Windows::Foundation::IAsyncAction ^)”(?__LFoundation@Windows@@YA@PE$AAUIAsyncAction@01@@Z)已在pch.obj中定义
- VS2019 #pragme 消息显示异常-VS2019 #pragme 消息显示异常
- 标识标签
- 加入 LiveShare 会话时 VCManagedPackage 包未正确加载
- 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 2019 发行说明历史记录
要详细了解 Visual Studio 2019 的历史版本,请查看 Visual Studio 2019 发行说明历史记录。
Visual Studio 2019 版本 16.4 发行说明