2019LogoVisual Studio 2019 版本 16.3 发行说明



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


注意

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



Visual Studio 2019 版本 16.3 中的新增功能

支持的时间范围

此版本现已不受支持。 有关 Visual Studio 支持的详细信息,请查看 Visual Studio 2019 的支持策略

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

Visual Studio 2019 版本 16.3 发行版

存档的版本说明

Visual Studio 2019 博客

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


Release Notes Icon Visual Studio 2019 版本 16.3.10 New release icon

发布时间:2019 年 11 月 20 日

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


Release Notes Icon Visual Studio 2019 版本 16.3.9

发布时间:2019 年 11 月 12 日

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


Release Notes Icon Visual Studio 2019 版本 16.3.8

发布时间:2019 年 11 月 5 日

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


Release Notes Icon Visual Studio 2019 版本 16.3.7

发布时间:2019 年 10 月 29 日

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


Release Notes Icon Visual Studio 2019 版本 16.3.6

发布时间:2019 年 10 月 22 日

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


Release Notes Icon Visual Studio 2019 版本 16.3.5

发布时间:2019 年 10 月 15 日

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


Release Notes Icon Visual Studio 2019 版本 16.3.4

发布时间:2019 年 10 月 10 日

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


Release Notes Icon Visual Studio 2019 版本 16.3.3

发布时间:2019 年 10 月 8 日

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


Release Notes Icon Visual Studio 2019 版本 16.3.2

发布时间:2019 年 10 月 1 日

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

  • 修复了 Xcode 11 支持的问题。

Release Notes Icon Visual Studio 2019 版本 16.3.1

发布时间:2019 年 9 月 25 日

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


Release Notes Icon Visual Studio 2019 版本 16.3.0

发布时间:2019 年 9 月 23 日

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

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


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

.NET Framework 4.8

添加了 .NET Framework 4.8 开发工具来支持面向 .NET Framework 4.8。 .NET Framework 4.8 提供多项新功能和改进功能,还有大量可靠性、稳定性、安全性和性能方面的修补程序。 有关 .NET Framework 4.8 的更多详细信息,请参阅 .NET Framework 4.8 博客公告

.NET 效率

  • 在重命名接口、枚举或类时,开发人员现在可以重命名文件。 将光标置于类名称中并键入 (Ctrl+R, R) 以打开“重命名”对话框并选中“重命名文件”框。
Rename containing file when renaming a class
在重命名类时重命名包含该类的文件
  • 现在为多目标项目提供了“编辑并继续”支持,这些项目包含在针对不同域或加载上下文的同一进程中多次加载的模块。 此外,即使未加载包含文件的项目或应用程序正在运行,开发人员也可以编辑源文件。
  • 现在可以使用重构来包装流畅调用链。 将光标置于调用链上,并按下 (Ctrl+.) 触发“快速操作和重构”菜单。 选择“包装调用链”或“包装并对齐调用链”
Wrap call chain
包装调用链
  • 用户现在可以在写入其初始值设定项后立即引入局部变量。 首先,编写表达式。 然后,将光标置于表达式名称上,并按下 (Ctrl+.) 触发“快速操作和重构”菜单。 选择引入局部变量的选项。
Introduce a local variable
编写初始值设定项后引入局部变量
  • 现在,.NET Core 工具支持分析器。 用户在解决方案资源管理器中右键单击项目名称,然后选择“属性”,即可添加推荐的首选分析器包。 选择“代码分析”以安装分析器包,并配置运行代码分析的时间
.NET Core Tooling Analyzer Support
.NET Core 工具分析器支持
  • 此前,我们添加了针对未导入类型的 IntelliSense 补全。 如果用户不希望未导入的类型持续占用 IntelliSense 的空间,可以选择关闭此功能。 现在,我们对 IntelliSense 开关添加了新的导入类型筛选器,因此关闭了未导入类型补全的用户可以更轻松地重新将其加入完成列表。
IntelliSense completion list expander
IntelliSense 完成列表扩展器
IntelliSense completion list expander triggered
已触发 IntelliSense 完成列表扩展器
  • 现在,对 XML 注释添加了快速信息样式支持。 将光标放在方法名称上。 然后,快速信息将从代码上方的 XML 注释中显示支持的样式。
Quick info style support for XML comments
对 XML 注释的快速信息样式支持

WPF/UWP 工具

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

设计器:

  • WPF 设计器现已完全可用 (GA) 于 WPF .NET Core 项目:适用于 WPF .NET Core 应用程序的 XAML 设计器现已向所有客户正式发布(通用版),无需预览版功能标志。 与 WPF .NET Framework 设计器相比,适用于 WPF .NET Core 应用程序的 XAML 设计器在一些行为和功能方面略有不同。请注意,这是设计造成的。 考虑到这种差异,我们希望鼓励客户报告使用 Visual Studio 反馈功能时可能遇到的任何问题或限制。
WPF .NET Core XAML Designer
WPF .NET Core XAML 设计器

XAML 调试工具:

  • 为 WPF 资源字典更改添加了 XAML 热重载支持:XAML 热重载现支持更新 WPF 资源字典,以在应用程序中实时更新。 以前,此功能仅可用于通用 Windows 平台 (UWP),而它现在支持用于 WPF .NET Framework、WPF .NET Core 和 UWP 应用。 支持的操作包括添加新的“资源”部分定义,以及添加、删除和更新资源的新的/现有部分。
  • 应用内工具栏现可移动:应用内工具栏已经过增强,使其在运行的 WPF/UWP 应用程序中可移动,使开发人员能够在应用程序中将其向左或向右拖动以取消阻止应用 UI。 请注意,会话间隔期间不存储工具栏移动到的位置,重启应用时,工具栏将返回到默认位置。
In-app toolbar movable
应用内工具栏可移动

UWP 包签名。

  • 恢复了通过清单设计器创建和导入签名证书文件 (.pfx) 的功能。
UWP signing
  • 引入了通过打包向导创建和导入签名证书以简化签名过程的功能。
UWP signing packaging wizard

.NET 工具

  • 支持向 .Net Core 3.0 项目添加新的开放 API 及 GRPC 服务引用。
  • 将 .Net Core 3.0 辅助项目发布到 Azure 容器注册表、DockerHub 等。
  • “新建项目”对话框中显示了用于 Worker、gRPC、Razor 类库和 Blazor 的 .NET Core 3.0 模板。
  • Visual Studio 中还显示了通过 .NET CLI 对 .NET Core 3.0 模板所做的任何更新。

C++

  • C++ 开发人员现在可以使用键盘快捷方式 Ctrl+K, Ctrl+/ 来切换行注释。
  • 现在基于类型限定符筛选 IntelliSense 成员列表,例如,const std::vector 现将筛选出 push_back 等方法。
  • 增加了以下 C++20 标准库预览功能(带有 /std:c++latest):
    • P0487R1:修正 operator>>(basic_istream&, CharT*)
    • P0616R0:在 <numeric> 中使用 move()
    • P0758R1is_nothrow_convertible
    • P0734R0:概念的 C++ 扩展
    • P0898R3:标准库概念
    • P0919R3:无序容器的异类查找
  • 新 C++ Core 准则检查,包括新的“枚举规则”规则集以及其他常量、枚举和类型规则。
  • 新的默认语义着色方案使用户能够一目了然地了解其代码,可将调用堆栈窗口配置为隐藏模板参数,并默认启用 C++ IntelliCode。
  • 使用环境变量配置调试目标和自定义任务的方法有:使用 CMakeSettings.json 或 CppProperties.json,或者在 launch.vs.json 和 tasks.vs.json 中的单个目标和任务上使用新的“env”标记。
  • 现在,用户可以对丢失的 vcpkg 包使用快速操作,自动打开控制台并将其安装到默认的 vcpkg 安装。
  • 优化了 Linux 项目(CMakeMSBuild)完成的远程标头复制,现在可并行运行。
  • Visual Studio 对 WSL 的本机支持现在支持基于 MSBuild 的 Linux 项目并行生成。
  • 现在,用户可以指定本地生成输出的列表,以便通过 Linux Makefile 项目部署到远程系统。
  • 现在,CMake 设置编辑器中的设置说明包含更多的上下文和指向有用文档的链接。

容器工具

  • 构建 Azure Functions (v2) 的开发人员现在可以将 Docker 容器支持(仅限 Linux)添加到其 C# 项目。 为此,可以在解决方案资源管理器中右键单击项目名称,然后选择“添加”-->“Docker 支持”。 除了将 Dockerfile 添加到项目,还会调试目标将设置为“Docker”。 这意味着在运行中的容器内调试 Functions 代码。 用户可以点击断点,可以检查变量,还可以使用 Visual Studio 提供的所有强大的调试功能。
Debug Azure Functions running in Linux containers.
调试在 Linux 容器中运行的 Azure Functions

面向 .Net Core 项目的数据库分析

此版本在性能和诊断工具套件中包含一个新的工具,可通过性能探查器 (ALT-F2) 使用它。 对于使用 ADO.Net 或实体框架的 .Net Core 项目,新的数据库工具将提供这些项目的查询相关详情。 该工具提供一个可链接到源代码的“转到源”选项,还对分析会话期间执行的每个查询提供时间详细信息。 该工具可与性能探查器中的其他工具同时使用。 与 CPU 使用率工具一起使用时,用户可详细了解使用数据库的 .Net Core 代码的性能特征。

调试器

  • “并行堆栈”窗口改进了任务和进程中依赖项的可视化效果,以便更轻松地诊断异步代码中的问题。
Tasks visualization in parallel stacks window
改进了“并行堆栈”窗口中的任务可视化效果

F# 和 F# 工具

此版本包括对 F# 4.7(F# 语言的最新版本)的支持!

F# 4.7 的大部分改进在于底层基础结构更改,这让我们能够更有效地提供 F# 语言功能的预览。 但我们还是提供了一些不错的新功能。

F# 语言和核心库

我们添加了对 F# 4.7 的支持,这是一个次要语言版本,其中包含用于提供预览功能的编译器基础结构,让我们可以在开发过程中较早地获得关于功能设计的反馈。

完整的 F# 4.7 功能集:

  • 支持 LangVersion 标志,这可将编译器使用的 F# 语言版本配置为 F# 4.6 或更高版本
  • 支持数组、列表和序列表达式中的隐式生成
  • 静态成员和构造函数的缩进要求放宽
  • 放宽成员声明for 循环中的双下划线 (__) 要求(由 Gustavo Leon 提供帮助)
  • 弃用对 .NET Core 1.x 的支持后,FSharp.Core 现在针对 netstandard2.0 而不是 netstandard1.6
  • .NET Core 上的 FSharp.Core 现在支持 FSharpFunc.FromConverterFSharpFunc.ToConverterFuncConvert.ToFSharpFunc
  • FSharp.Core 现在支持 Async.SequentialAsync.Parallel 的可选 maxDegreeOfParallelism 参数(由 Fraser Waters 提供帮助)

除了 F# 4.7 功能集之外,此版本还包括对以下预览 F# 语言功能的支持:

  • 支持 nameof 表达式
  • 支持打开静态类

可以通过在项目文件中设置 <LangVersion>preview</LangVersion> 来启用此功能。

此版本还包含以下 bug 修复和对 F# 编译器的改进:

  • 解决了具有大量记录、结构或其他类型的 F# 编译器可能会堆栈溢出的长期问题 (#7070)
  • 解决了指定无效内联 IL 可能导致 Visual Studio 故障的问题 (#7164
  • 解决了以下问题:如果结构采用 C# 定义并在成员调用中发生变化,则无法复制结构 (#7406)
  • 由编译器创建的可移植 PDB 内容的加密哈希未包含在 PE 调试目录中,可配置哈希集默认设置为 SHA-256(#4259#1223
  • LeafExpressionConverter 忽略 ValueType 并假定 System.Tuple 的 bug 已修复 (#6515),由 Kevin Malenfant 提供帮助
  • List.transpose 丢弃数据(而不是引发异常)的 bug 已修复 (#6908),由 Patrick McDonald 提供帮助
  • List.map3reacheight 修复了以下 bug: 在不同长度的列表上使用时出现误导错误 (#6897)

F# 工具

此版本还包括对适用于 Visual Studio 的 F#工具的一些改进:

  • 记录的格式设置为更像是工具提示和 F# 交互中的规范声明和值 (#7163)
  • 工具提示中的属性现在指定是否是 get-only、set-only 或 getset (#7007)
  • 已通过 chadunit 解决以下问题:文件使用正斜杠时,“转到定义”和其他功能并不总是能在项目中正常使用(#4446#5521#4016
  • 已解决匿名记录和调试问题(#6728#6512
  • 已解决以下 bug:源中的空哈希指令可能会让源文本颜色看起来像是随机(#6400#7000

IDE

  • 使用“开始”窗口中的搜索框,可以快速定位最近使用过的项目、解决方案和文件夹。 此外,这些 MRU 代码容器与 Visual Studio 全局搜索集成,因此开发人员可以通过 Visual Studio 搜索框找到它们。
Start window MRU search
在“开始”窗口“最近使用的项目”列表中搜索
  • 改进 Visual Studio IDE 中的安装程序对话界面,从而更轻松地识别添加到 Visual Studio 的特定工作负荷。
  • VS Search 支持通过 C# 和 VB 搜索类型和成员,还支持所有语言的文件搜索。 将在用户键入其搜索查询时显示结果,还会显示在专用“代码”组中,可通过键盘快捷方式或鼠标单击访问此组。
  • 新安装的项目模板用“New”标签进行指示,以便能够快速识别,并且,筛选器将在“新建项目”对话框中显示选定的值。 此外,开发人员可以在列表中固定、取消固定和删除最近使用过的模板,从而组织这些模板。
New Project Dialog
在“新建项目”对话框中,查看新安装的项目和所选筛选器,并固定模板
  • 通过更可靠的模糊搜索,在“新建项目”对话框中搜索模板。新算法可以随错别字和复数自动调整,根据搜索和筛选相关性突出显示匹配的关键字,并对结果进行排序。
New Project Dialog template search
改进了项目模板搜索中的搜索准确性和突出显示

安装程序

  • Visual Studio 现在允许通过单击更新 Visual Studio IDE 和安装程序,进而提高生产力。
  • 用于 .NET Core 2.1 和 2.2 的 Visual Studio 安装程序组件仅用于承载运行时。 从此预览版开始,这些组件还将承载模板和运行时。
  • 使用 Visual Studio 安装程序的“单个组件”选项卡中的搜索框,可以快速定位所有可用组件以便安装。
Installer components search
在 Visual Studio 安装程序中搜索单个组件

IntelliCode

  • 默认情况下,C++ 基本模型已打开。
    • 可以通过转到“工具”>“选项”>“IntelliCode”来更改此设置 。
  • 我们已添加适用于 C# 的 Repeated Edits,它可以分析本地编辑的可重复更改,并确定同一文件中可能需要此更改的其他位置。
    • 建议的重复编辑将在错误列表中显示,并在代码文件中显示为警告。

JavaScript/TypeScript

  • JavaScript 和 TypeScript 分类(通常称为“语法着色”)将更快地应用于大文件。 JavaScript 和 TypeScript 代码修复和重构(即 LightBulb)的列表也会更快显示出来。
  • 现在提供对 TypeScript 3.6 的编辑器支持。
  • 编辑或更改 tsconfig.json 文件时,Visual Studio 现在会以更高的响应性刷新项目。

Python 测试

  • Python 开发人员现在可以在 Python 项目和开放文件夹工作区方案中使用常用的 Python 框架 pytest 来运行测试。
  • 若要为 Python 项目启用 pytest 和 UnitTest,请右键单击项目解决方案名称,然后选择“属性”。 在此,选择“测试”选项卡,再选择测试选项。 请注意,若启用 UnitTest,则必须指定测试的目录(默认为根目录)以及测试文件名的模式。 将更改保存到“测试”选项卡后,立即会启动测试发现。
pythontest_project
配置 Python 项目以发现使用 UnitTest 编写的 pytest 或测试。 请注意,通过在“输出窗口”中选择“显示来自测试的输出”,用户可以查看与测试运行(包括失败的测试和通过的测试)相关联的日志记录信息
  • UnitTest 测试体验已返工,用户现在需要手动配置用于 Python 项目和开放文件夹工作区的测试,因为已不再自动发现这些测试:
  • 若要为 Python 文件夹启用测试,请单击 Show All Files 图标,以便在解决方案资源管理器中显示所有文件。 在此,单击位于“本地设置”文件夹中的 PythonSettings.json 文件(如果没有该文件,请创建一个)。 在此文件中,可以指定要使用的“TestFramework”,以及测试文件名模式和包含测试的目录(这两个选项都适用于 UnitTest):
pythontest_folder
  • 测试调试已更新为使用 PTVSD 4,但如果用户想要继续使用“旧版调试器”,或在使用新版调试器时遇到任何问题,可转到“工具”>“选项”>“Python”>“调试”>“使用旧版调试器”以启用旧版调试器
  • 我们还为具有预先存在的项目并使用包含测试文件的开放文件夹工作区的用户简化了操作,使其能够在 Visual Studio 2019 中快速继续处理代码。 若用户打开包含测试配置文件(例如用于 pytest 的 .ini 文件)的项目,但尚未安装或启用 pytest,系统将提示这些用户安装所需的包,并为其要使用的 Python 环境配置这些包:
pytest infobar
只要打开包含未配置测试文件的 Python 项目或文件夹,系统就会提示用户执行此操作,并安装必要的测试包(在本示例中为 pytest)。
  • 同样,对于项目或开放文件夹工作区中的 UnitTest 测试文件,系统会提示用户安装和/或启用测试框架。 对于这两种方案,开发人员都可以选择忽略消息并手动配置框架。

Visual Studio 性能探查器

  • 显示调用树时,“性能探查器”中的“CPU 使用情况”工具会自动显示红色火焰图标来指示“热路径”。 这样,就无需单击以调查 CPU 使用情况。 可以使用 Alt-F2 或从“调试”菜单访问“CPU 使用情况”工具。
  • 现在,在 Visual Studio IDE 中,性能探查器也会参与向前/向后导航。 当开发人员在性能探查器中导航到各种工具视图时,导航点将与其他导航项一起保存。 可以通过单击导航按钮或使用 Visual Studio 中的导航命令来使用它们。
Forward/Backward Navigation Image
探查器中的向前/向后导航

Web 工具

  • 使用新的“添加依赖项”向导,在发布配置文件中轻松配置应用程序的依赖项。 它目前支持添加对 Azure SignalR 服务、Azure SQL Server、Azure 存储的依赖项,让用户可以在不离开 IDE 的情况下预配新实例或选择现有实例。
  • 根据热门需求,ASP.NET 运行时团队已支持从 Razor 类库中提供静态内容。 在 Visual Studio 的预览版中,该团队已为此方案添加了工具支持。

Xamarin

此版本包含以下 Xamarin SDK 更新:

  • Xamarin.iOS 13
    • 添加了对 Xcode 11 的支持,以构建和调试适用于 iOS 13、tvOS 13 和 watchOS 6 的应用。 有关可用新功能的更多详细信息,请参阅 iOS 13 简介
  • Xamarin.Android 10
    • Android 应用现在可面向 Android 10,方法是在项目属性页面的“应用程序”选项卡下,将“使用 Android 版本编译:(目标框架)”设置为“Android 10.0 (Q)”。 Android 10 引入了深色主题、手势导航和可折叠设备优化等功能。 有关这些新功能的详细信息,请参阅 Android 10 with Xamarin(使用 Xamarin 开发 Android 10 应用)。
android q
将“使用 Android 版本编译: (目标框架)”设置为“Android 10.0 (Q)”。

此版本还包括一些新的工具功能和改进功能:

  • 此版本中提供了适用于 Xamarin.Forms 的 XAML 热重载的公共预览版。 通过 XAML 热重载,可以在在仿真器、模拟器或物理设备上调试应用时快速循环访问 UI。 只需编辑 XAML,然后保存该文件,即可看到更改立即反应在正在运行的应用上。 若要启用 XAML 热重载,请转到“工具”>“选项”>“Xamarin”>“热重载”
xaml hot reload
适用于 Xamarin.Forms 的 XAML 热重载。
  • 适用于 Xamarin.Forms 的 XAML 预览器现在可以在使用 Xamarin.Forms 视觉对象时呈现 iOS 和 Android 的材料设计。
  • Xamarin Designer for iOS 采用新方法处理约束。 选择可约束视图后,此时工具栏中的“约束固定模式”选取器选择器旁将显示省略号。 单击省略号可显示用于编辑所选视图约束的弹出框。
new ios constraints editor
新的 iOS 约束编辑器弹出框。
  • 现在,你可以在 Windows 上的 Visual Studio 中存档和发布 iOS 应用。 与 Mac 计算机配对后,将配置设置为“发布|iPhone”,在解决方案资源管理器中右键单击 iOS 项目,然后选择“存档...”菜单选项,以创建存档。 在存档管理器中,可以将 .ipa 保存到磁盘以进行即席分发,或将其上传到 App Store Connect 以将应用发布到 App Store。
  • 在解决方案资源管理器中右键单击 .plist 文件时,会看到使用通用 plist 设计器或 XML 编辑器快速打开该文件的新选项。
new plist options
用于打开 .plist 文件的新选项。

已知问题

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

Visual Studio 2019 Known Issues

反馈和建议

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


Blogs

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


Visual Studio 2019 发行说明历史记录

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


返回页首