Visual Studio 2019 版本 16.6 发行说明
开发者社区 | 系统要求 | 兼容性 | 可分发代码 | 发布历史记录 | 许可条款 | 博客 | Visual Studio 新增功能文档
注意
此版本不是最新版本的 Visual Studio。 若要下载最新版本,请访问 Visual Studio 网站。
Visual Studio 2019 版本 16.6 中的新增功能
支持的时间范围
此版本现已不受支持。 有关 Visual Studio 支持的详细信息,请查看 Visual Studio 2019 的支持策略。
请参阅最新版本的发行说明或访问 Visual Studio 站点下载最新支持的 Visual Studio 2019 版本。
Visual Studio 2019 版本 16.6 发行版
- 2020 年 7 月 14 日 - Visual Studio 2019 版本 16.6.4
- 2020 年 6 月 30 日 — Visual Studio 2019 版本 16.6.3
- 2020 年 6 月 9 日 — Visual Studio 2019 版本 16.6.2
- 2020 年 6 月 1 日 — Visual Studio 2019 版本 16.6.1
- 2020 年 5 月 19 日 — Visual Studio 2019 版本 16.6.0
Visual Studio 2019 已存档的发布说明
- Visual Studio 2019 版本 16.5 发行说明
- Visual Studio 2019 版本 16.4 发行说明
- 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.6 和 v16.7 预览版 1
- Visual Studio 2019 版本 16.6 预览版 2 推出适合你的新功能
- Visual Studio 2019 版本 16.5 现已正式发布!
- 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.6.4
发布时间:2020 年 7 月 14 日
16.6.4 版的安全顾问公告
CVE-2020-1393 诊断中心标准收集器服务特权提升漏洞
当因 Windows 诊断中心标准收集器服务未能正确纠正输入而导致不安全的库加载行为时,则存在特权提升漏洞。
CVE-2020-1416 Visual Studio 特权提升漏洞
在 Visual Studio 中加载软件依赖项时,存在特权提升漏洞。
CVE-CVE-2020-1147 .NET Core 拒绝服务漏洞
未经过身份验证的远程攻击者可能通过向 ASP.NET Core 应用程序或其他分析特定 XML 类型的应用程序发布特制请求来利用此漏洞。 安全更新通过限制可在 XML 有效负载中呈现的类型来解决此漏洞。
Visual Studio 2019 版本 16.6.4 中已修复的主要问题
Visual Studio 2019 版本 16.6.3
发布日期:2020 年 6 月 30 日
Visual Studio 2019 版本 16.6.3 中已修复的主要问题
- WMI 提供程序 MSI 仍然无法在 16.6 版中安装
- 无法在解决方案资源管理器中查看上下文菜单上的历史记录
- 无法使用 Visual Studio 2019 16.6.0 为 X509Certificate2 生成填充码
- 在从 Visual Studio Enterprise 16.5.6 升级到 16.6.0 版之后,“添加控制器”和“添加已搭建基架的新项”对话框不显示部分数据上下文
- 无法打开新的 json 文件
- 关于 Microsoft Visual Studio 冻结的问题。
- Visual Studio 2019 16.6.0 Microsoft Fakes 问题
- VS 16.6.x 中的 VSSDK IVsHierarchy 性能退化
- Windows 10 SDK (10.0.19041.1)- ARM64 memcpy 在访问未对齐且未缓存的内存时崩溃
- 向 SQL Server 数据库项目添加脚本不会打开用户脚本列表
- 具有 ref 参数的 Fakes 生成
- “打开文件夹”项目中的 Code Analysis 调用堆栈频繁软挂起
- Visual Studio 类设计器深色主题支持
- 在 .NET Core 项目中添加了对文本模板转换工具包 (T4) 的支持
- 将 IntelliCode 团队完成模型获取操作与模型生成操作分开。
- 解决了用户可能由于会阻止使用 IDE 的 WMIProvider 包而遭遇关键更新或安装失败的这一问题。 此组件中的故障不再阻止使用 IDE。
- 解决了在某些场景中使用 Xamarin 项目时导致产品停止响应的问题。
- 修复了在尝试解密无效的 UWP 代码签名证书时导致 VS 崩溃的 bug
Visual Studio 2019 版本 16.6.2
发布日期:2020 年 6 月 9 日
16.6.2 版的安全顾问公告
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.6.2 中修复的主要问题
- 当 C++/CLI 项目中修改的内容未保存时,Visual Studio 2019 16.60 会在运行时或生成时挂起
- Microsoft.VisualStudio.DesignTools.WpfTap.dll 中发生了类型为“System.NullReferenceException”的未经处理的异常
- 重新打开文档时反复出现空引用
- “创建新项目”对话框搜索找不到第三方语言提供商的模板
- 将 Visual Studio Enterprise 16.5.6 升级到 16.6.0 版本后,IntelliSense 显示“tilde-slash”(~/) 指向 ASP .NET Core 3.1 项目根目录而不是 wwwroot 子文件夹
- 修复了一个编译器错误(错误 C2475: 重新定义;”constexpr” 说明符不匹配);在 C++17 模式下编译为 C++/CX 时,该错误会影响 std::atomic。
- 修复了 Razor 视图中的 URL 完成值和格式。 现再次使用与应用相关的 URL 格式,并且 URL 完成列表中的值显示应用根目录(即 wwwroot)下取得 root 权限的文件和文件夹。
- 修复了使用片段时出现的一个故障。
- 还原可通过扩展隐藏的项目模板。
Visual Studio 2019 版本 16.6.1
发布日期:2020 年 6 月 1 日
Visual Studio 2019 版本 16.6.1 中已修复的主要问题
- 修复了在使用 HotRestart 部署 iOS 应用程序时出现的问题。
- 修复了 Xamarin.iOS 生成失败并附带 MessagingRemoteException 的问题。
- 修复了一个问题,该问题会将常量初始化的静态局部变量“const”变量放置在之前从只读数据段中动态初始化的“inline”函数中。 与较早的工具集版本编译的 OBJ 链接时,这可能会导致兼容性问题。
- 修复了 Xamarin.Android 项目中的一个生成问题,当 Android 布局文件包含某些字符时,可能会出现此问题。
- 修复了在 Xamarin.Android 应用程序中运行 .resx 本地化时出现的问题。
- C++ IntelliSense vcpkgsrv.exe 经常崩溃,并出现 set_parent_scope_on_push。
- 修复了 WMI 提供程序组件安装失败的问题。
- 修复了某些情况下显示 C++ 代码快速信息工具提示时出现的故障。
- 修复了关闭 Visual Studio 时出现的故障。
- 添加了 Xcode 11.5 SDK 支持
- 删除了 BGTask 的 abstract 修饰符
Visual Studio 2019 版本 16.6.0
发布日期:2020 年 5 月 19 日
16.6.0 版的安全顾问公告
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.6.0 内容
C++
改进了 Doxygen/XML 注释生成:在函数上方键入“///”或“/**”会自动生成 Doxygen 或 XML 文档注释存根。 它们现在也显示在“快速信息工具提示”中。

对 CMake for Linux/WSL 的 Ninja 支持: 在 WSL 或远程系统上生成 CMake 项目时,请使用 Ninja 作为基础生成器。 添加新的 Linux 或 WSL 配置时,Ninja 是默认生成器。
远程 CMake 调试的调试模板: 我们已简化了用于在远程 Linux 系统或 WSL 上通过 gdb 调试 CMake 项目的模板。
C++ 20 概念的初始支持:IntelliSense 现可识别 C++20 概念并在成员列表中推荐它们。
调试
在不要求重启的情况下实现 Snapshot Debugger 附加:现在,无需重启便可将 Snapshot Debugger 安装在 Azure 应用服务 (ASP.NET Core 3.1) 上,这样就可以在不中断服务的情况下调试和诊断实时问题! 首次附加到 Snapshot Debugger 时会提示在 Azure 应用服务部署上安装 Snapshot Debugger 站点扩展,而此操作需要重启。
反编译方面的用户体验改进:反编译进程将使用现有的 PDB 为局部变量生成更好的名称。
Git 效率
- 克隆仅包含一个解决方案的存储库;克隆完成后,会自动加载该解决方案。
JavaScript/TypeScript
TSServer 进度栏:语言服务打开 TypeScript 项目后,用户将能够在后台任务小组件中查看正在打开的已配置项目的进度。
新的多目标 JavaScript/TypeScript 调试和服务辅助角色支持:JavaScript/TypeScript 调试器现支持同时调试服务辅助角色、Web 辅助进程、iFrame 和页面 JavaScript! 此外,新的调试体验还支持在浏览器中同时调试后端节点服务器应用程序和客户端 JavaScript。 该功能仍以试验版提供。 可以在“调试选项”菜单中启用新的调试体验
已更新“签名帮助”和“转到定义”的实现以更好地支持 LiveShare 场景。
适用于 .NET Core 和 SDK 样式项目的 Microsoft Fakes
Microsoft Fakes 现支持 .NET Core! 很多用户希望将他们的应用和测试套件迁移到 .NET Core 中;借助 Fakes 对 .NET Core 的支持,该过程的很大一部分成为了现实。 可在“工具”>“选项”>“预览功能”中启用此功能。 Fakes 是一种模拟框架,它可使用存根和填充码模拟产品代码的某些部分,从而将测试隔离开来。 此模拟有助于将测试和产品代码分开,让它能专注于仅测试与给定测试相关的内容。
编辑器
列表视图:通过新的“在文件中查找”体验,我们获得了以前的结果格式(无格式的平面文本)对特定用途有所帮助的反馈。 现在,“结果”面板中提供“列表视图”,支持以先前格式访问结果。
重复查找:“在文件中查找”操作的“结果”窗口现包含“重复查找”按钮。 此按钮将获取用于搜索的所有选项,并使用这些选项重新填充“在文件中查找”面板。 这样就可以更轻松地在进行一些更改后重复搜索,或调整搜索来帮助缩小结果范围。 当焦点在“结果”窗口中时,键入 Alt+R,然后按 Enter 即会重复搜索。
.NET 效率
添加隐式强制转换代码修补程序:现在有一个代码修补程序,可以在无法隐式强制转换表达式时添加显式强制转换。 将光标置于错误上,并按下 (Ctrl+.) 触发“快速操作和重构”菜单。 选择“添加显式强制转换”。
简化条件表达式重构:通过移除不必要的代码来简化条件表达式。 将光标置于条件表达式上。 按 (Ctrl+.) 触发“快速操作和重构”菜单 。 选择“简化条件表达式”。
将常规字符串字面量转换为逐字字符串字面量重构:将光标置于常规字符串字面量上。 按 (Ctrl+.) 触发“快速操作和重构”菜单 。 选择“转换为逐字字符串”。
将逐字字符串字面量转换为常规字符串字面量重构:将光标置于逐字字符串字面量上。 按 (Ctrl+.) 触发“快速操作和重构”菜单 。 选择“转换为规则字符串”。
直接通过编辑器批量配置分析器类别的严重级别:将光标置于错误、警告或建议和类型 (Ctrl+.) 上以触发“快速操作和重构”菜单。 选择“禁止或配置方面的问题”。 然后选择“配置所有 {category name} 分析器的严重性”。 这将使用类别的新严重性更新现有的 EditorConfig 文件。
针对包含返回值和值标记的 XML 注释的快速信息样式支持:将光标悬停在元素上。 然后,快速信息将从代码上方的 XML 注释中显示支持的样式。
使用 EditorConfig 将文件头添加到现有文件、项目和解决方案:首先需要将 file_header_template 规则添加到 EditorConfig 文件。 然后,需要将值设置为等于所要应用的标头文本。
接下来将光标置于任何 C# 或 Visual Basic 文件的第一行,然后键入 (Ctrl+.),触发“快速操作和重构”菜单。 选择“添加文件横幅”。 如果要将文件头应用到现有项目或解决方案的所有文件,请选择“修复以下对象中的所有实例:”选项下面的“项目”或“解决方案”。
Web 工具
用于配置 Azure 服务和仿真器的新体验:“连接的服务”选项卡现在提供将应用程序连接到 Azure 服务(例如 Azure SQL、存储、Key Vault 等)的新体验。 它可帮助你预配新的实例(或选择现有实例),并确保代码具有最新的 NuGet 包和正确的启动配置代码。 如果可能,也可以使用本地仿真选项。
对发布体验的更新:发布现在提供了一个类似于向导的新体验,用于创建新的发布配置文件,指导你完成各种选项。 即使安装中缺少某些 Visual Studio 组件,你仍可访问完整的发布目标和选项集;任何缺少的组件都将被标识并请求按需安装。 还更新了“发布配置文件摘要”页,以匹配“连接的服务”选项卡下提供的用于配置 Azure 服务依赖项的体验。
Windows 窗体
适用于 .NET Core 的 Windows 窗体设计器
.NET Core 项目的 Windows 窗体设计器现已可用。 若要在 Visual Studio 中启用该设计器,请转到“工具”>“选项”>“环境”>“预览功能”,然后选择“将预览版 Windows 窗体设计器用于 .NET Core 应用”选项。

在此版本中,我们进行了以下改进,包括支持更多控件:
- 支持所有对话框控件、PropertyGrid、HScrollBar、VScrollBar、DomainUpDown 和 TrackBar
- 拖放改进
- 选择改进
- 稳定性和 bug 修复
WPF/UWP 工具
打包向导中的 Azure Key Vault:UWP 开发人员现可使用直接从打包向导中的 Azure Key Vault 获得的代码签名证书对其应用包进行签名。 只需具有 Key Vault 的 URI 以及对 Microsoft 帐户的适当权限即可。 所选证书将导入到用户的本地证书存储,可在这里用它进行签名。 受密码保护的本地证书现在也可使用 Key Vault 中的密钥进行解密。
XAML 热重载和实时可视化树现在持同时附加到多个进程。 这有助于多种场景,例如当某个解决方案同时启动多个 WPF/UWP 项目时,或者你当前使用的 UWP 应用在使用多实例时。 为了实现这一点,我们更新了实时可视化树,在其中添加了新的顶级进程节点以将来自同一进程的元素组合在一起。
工具箱现在支持包含多个 VisualStudioToolsManifest.xml 文件的 NuGet 包:这使 NuGet 包作者可以根据引用项目的框架/平台版本更改工具箱中显示的控件。 工具箱将显示清单中的项,其工具子目录目标框架名字对象 (TFM) 与项目的目标框架/平台最匹配。 如果未找到 TFM 匹配项,它将回退到工具目录的根目录中的清单。 还需要此根清单,以便与早期版本的 Visual Studio 兼容。
新设置:保存时 XAML 热重载。 默认情况下,XAML 热重载会将所有有效的 XAML 更改实时发送到正在运行的应用。 在此版本中,我们添加了一个新设置(“调试”>“选项”>“常规”>“启用适用于 XAML 的 UI 调试工具”>“在保存文档时应用 XAML 热重载”),开发人员可以通过此设置选择此行为的工作方式。 如果启用此设置,则在保存要编辑的文件之前,不会应用 XAML 热重载更改。
已添加对类设计器的深色主题支持。

Xamarin
XAML 热重载现在可以仅重载页面上更改的内容,而不是整个页面。 通过在“工具”>“选项”>“Xamarin”>“热重载”中更改“重载选项”设置来进行尝试。
查看正在运行的应用程序中页面上元素的实时可视化树。 通过“调试”>“Windows”>“实时可视化树”,在 XAML 热重载调试会话期间打开实时可视化树。
使用“环境设置”板替代模拟器的设置,例如深色/浅模式、字体大小等。 通过“调试”>“Windows”>“环境设置”,在 XAML 热重载会话中打开它。
编辑 Android XML 时,可以使用 Lint 配置文件并从更多 IntelliSense 建议中进行选择。
Bug 修复
Visual Studio 2019 版本 16.6.0 中已修复的主要问题
- 启用“新 Git 体验”功能标志后,团队资源管理器中将出现一条消息,指导用户进入新的 Git 工具窗口。
- 解决了以下问题:当 WinForms .NET Core 设计器处于打开状态时,关闭 VS 会导致间歇性 UI 延迟。
- 解决了以下问题:使用类型提供程序创建项目时,运行时引发缺失方法异常。
- 修复了 .NET Framework 项目的项目创建问题。
- 新的“在文件中查找”体验遵循“Tools-Options-Find”和“Replace”窗格中的选项。
- 修复了以下 bug:关闭文件夹和打开解决方案时,Git 存储库不会更改。
- 修复了以下 bug:使用完整的调试符号生成 iOS 应用时出现问题。
- 添加了对 Mac Distribution 预配配置文件和 Windows 证书的反向浏览。
- 修复了以下 bug:在某些场景中使用 Xamarin 项目时,此 bug 导致 Visual Studio 2019 停止响应。
- 在 SQL 脚本结果网格中添加了针对“带标头复制”的键盘快捷方式
- SSDT 用户现可设置和查看 SQL Server 2008 以上的所有版本的敏感度属性
- 改进“连接属性”对话框,使其更易于用户访问。
- 解决了使用“已用 CodeLens 测试”指示器时偶尔发生崩溃的问题。
- 确保“在文件中查找”文本的自动填充与旧行为一样。
- 确保“在文件中查找”中左箭头键的行为正确。
- 阻止 C++ 20 范围的 C++ 用户使用算法的问题。
来自开发者社区
- 添加了对 Mac Distribution 预配配置文件和 Windows 证书的反向浏览。
- 确保“在文件中查找”文本的自动填充与旧行为一样。
- 修改了新的“在文件中查找”体验,以从以前的“在文件中查找”导入“查找范围”筛选器。
- 保留“在文件中查找”的 VS 会话之间的“保持文件的打开状态”标志。
- 修复了以下 bug:使用完整的调试符号生成 iOS 应用时出现问题
- 升级到 16.4.2 和 Core 3.1 后,Visual Studio 不允许在发布设置中更改 TargetFramework
- 从命令行打开解决方案文件时,路径设置不正确
- IntelliCode Refactoring 循环重构建议
- “Cloud Explorer”>“附加调试器”>“对象引用未设置为对象的实例”
- VS 16.6.0 预览版 2.1 没有将我的 Nuget 包控件加载到 VS 工具箱
- 编辑源文件会使 Visual Studio 崩溃
- Intellisense 一直在加载 - 包含 Xml 声明作为项目项的项目
- “新建项目”对话框导致频繁出现用户错误(用户向模板筛选器键入预期名称)
- 无法保存文件
- 我无法打开文件
- 在 Visual Studio 2019 version 16.5 中,C++/CLI 已编入索引的属性出现内部编译器错误
- 主题往返切换
- VS 2019 中创建的 VSTO 项目不支持将包引用作为包管理格式。 发布生成可能会失败,出现“程序集必须用强名称签名,才能被标记为必备项”
- 在针对 KMDF 的代码分析期间,cl.exe 中出现故障 - ode analysis against KMDF - 驱动程序项目已修复。
- 在 Visual Studio 2019 中,在 CMakeLists.txt 中使用 "set_tests_properties" 会导致配置期间出现问题
- 使用 “amp.h”进行编译时为 C1001
- 从“开始”窗口创建项目无法键入项目名称
- 创建新的 C++/WinRT UWP Core 应用模板后,IntelliSense 报告的错误太多,而无法运行
- 编译 atlsecurity.h 会引发几个 C5205 警告(“删除抽象类”)
- 转到引用项目上的“定义(F12)”打开元数据,而不是引用 VSTO 项目的“单元测试项目(.Net Framework)”中的实际源代码。
- 没有禁止 C++ 代码分析警告 C26812 的选项(MSVC 2019 16.3.0 预览版 3 中的新增选项)
- C++ AMP array_view 构造在 VS 2019 16.5 预览版 2 上生成编译错误,显示为 /std:c++latest
- 在 const 对象中存在纯虚拟析构函数时可导致崩溃的代码生成问题
- 在按 Enter 键之前,“转到 (Ctrl+,)”不应将焦点置于搜索框外
- 针对不受支持的编辑内置改进 Native EnC 错误报告
- 此预览版本中的所有其他开发者社区修补程序。
- Microsoft.VisualStudio.Editor.Implementation.EditorPackage 未正确加载
- std::make_shared + PCH + virtual method + GoogleTest 导致 CL 19.24 内部编译器错误
- Visual Studio 中的拉取请求:“你未连接到远程存储库”
- 带 /Wall 的协同例程在编译器生成的代码中生成警告
- clang-tidy 命令行太长
- “选项卡和窗口”选项页上的选项不停重置
- C++/CLI .net core 3.1 生成警告
- Xamarin 发现不同版本的 System.Numerics 之间的冲突无法解决
- FontFamily 在 Resource WPF/.net Core 3.1 中不运行
- C++ 文本编辑器:二元运算符后的空格被自动格式设置错误删除
- “指针/引用对齐”错误地应用于受
alignas
关键字影响的类中声明的函数 - 预处理器生成的行信息不正确
- 此预览版中的所有其他修补程序。
已知问题
通过以下链接查看 Visual Studio 2019 中所有待解决问题和可用暂避方法。
Visual Studio 2019 版本 16.6 已知问题
反馈和建议
我们期待你的宝贵意见和建议! 如有问题,请通过安装程序或 Visual Studio IDE 右上角的“报告问题”选项告知我们。 图标位于右上角。
可以在 Visual Studio 开发者社区中提出产品建议或跟踪问题,也可在其中提问、寻找答案和建议新功能。
此外,还可通过实时聊天支持获得免费安装帮助。
Blogs
通过参考开发人员工具博客网站中的见解和建议,随时掌握所有新版本的最新最全资讯,并发表有关大量功能的深入分析帖子。
Visual Studio 2019 发行说明历史记录
要详细了解 Visual Studio 2019 的历史版本,请查看 Visual Studio 2019 发行说明历史记录。