原文:https://docs.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes

单击按钮即可下载最新版 Visual Studio 2019。 有关如何安装和更新 Visual Studio 2019 的说明,请参阅将 Visual Studio 2019 更新到最新版本。 另请参阅如何脱机安装的说明。

  


Visual Studio 2019 中的新增功能

Visual Studio 2019 发布

  • 2019 年 4 月 30 日— Visual Studio 2019 版本 16.0.3 
  • 2019 年 4 月 18 日 — Visual Studio 2019 版本 16.0.2
  • 2019 年 4 月 9 日 — Visual Studio 2019 版本 16.0.1
  • 2019 年 4 月 2 日 — Visual Studio 2019

Visual Studio 2019 博客

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

  • Visual Studio 2019:更快地编写代码。更智能的工作。开创未来。
  • Visual Studio 2019 Preview 2 is now available(Visual Studio 2019 预览版 2 现已推出)。
  • Visual Studio Live Share for real-time code reviews and interactive education(用于实时代码评审和交互式教育的 Visual Studio Live Share)。
  • Visual Studio IntelliCode supports more languages and learns from your code(Visual Studio IntelliCode 支持更多语言并从代码中学习)。
  • Making every developer more productive with Visual Studio 2019(使用 Visual Studio 2019 提高每位开发人员的工作效率)。

 Visual Studio 2019 版本 16.0.3 

发布 2019 年 4 月 30 日

What's New in Visual Studio 2019 版本 16.0.3

  • 适用于 Kubernetes 的 visual Studio 工具现在支持最新的 Azure 开发人员空格。

在 Visual Studio 2019 16.0.3 版本中已修复的问题

  • 删除选项中 Xamarin 窗体 Android 项目的解决方案资源管理器上下文菜单中缺少。
  • Xamarin.Android:不能选择目标 framework 28 在 Android 清单设置。
  • 无法加载文件或程序集 Microsoft.VisualStudio.Web.PageInspector.Loader,版本 = 1.0.0.0,区域性 = 中性,PublicKeyToken = b03f5f7f11d50a3a 或其某个依赖项。系统找不到指定的文件。
  • "时出错,运行所选的代码生成器"时尝试创建新视图。
  • Android Berechtigungsliste ist leer Android 权限列表为空。
  • 缺少图标.axml 文件在 Visual Studio 2019。
  • 不显示 axml 图标。
  • Visual Studio 扩展安装尝试覆盖核心 NuGet 文件可能会失败。
  • C#常量表达式在 switch 语句可能会产生错误的编译器错误。

 Visual Studio 2019 版本 16.0.2

发布时间:2019 年 4 月 18 日

Visual Studio 2019 版本 16.0.2 中已修复的问题

  • 标题栏中的解决方案名称被截断。
  • 打包云服务项目时警告中缺少内插。
  • 在某些情况下重置或导入设置后,Visual Studio 不再在启动时显示错误消息。
  • 已修复云服务项目中的可访问性问题,即诊断配置窗口中的错误输入无法被屏幕读取器读取的问题。

 Visual Studio 2019 版本 16.0.1

发布时间:2019 年 4 月 9 日

Visual Studio 2019 版本 16.0.1 中已修复的问题

  • 从“移动应用 (Xamarin.Forms)”项目模板创建新的 Xamarin.Forms 项目时,为 Windows (UWP) 平台添加选项。
  • 升级后,Visual Studio 2019 中的“帮助 > 关于”窗口标题仍显示“RC”。
  • 当将 Visual Studio 2019 从 RC 更新到 GA 时,Visual Studio 的 RC 快捷方式将被保留。
  • Visual Studio 2019 预览版 1.1 不能创建 UWP xamarin 窗体。
  • Visual Studio 2019 从预览版 4.4 升级到 16.0 后,会开始出现包加载失败。

 Visual Studio 2019

发布时间:2019 年 4 月 2 日

Visual Studio 2019 中的新增功能摘要

安装

  • 效率更高,因为现可在后台下载 Visual Studio 更新。
  • 可控制 Visual Studio 更新的安装模式。

IDE

  • 使用默认安装的 Visual Studio Live Share 与他人协作。 对 C ++、VB.NET 和 Razor 的附加语言支持为客户提供了解决方案视图和源代码管理差异共享。
  • 打开最近使用过的代码,或通过新的启动窗口从最常用的流程之一(如克隆、打开或创建项目)入手。
  • 使用新列出的按受欢迎度排序的模板新建改进了搜索体验和筛选器的项目。
  • 通过 shell 中一组新的可视更改,为代码提供更多垂直空间和新式外观。
  • 无论显示配置和/或缩放比例如何,都可以查看更清晰的 IDE,因为我们已改进对每监视器感知的支持。
  • 在 Visual Studio 中使用改进的搜索功能来搜索菜单、命令、选项和可安装组件。
  • 使用文档指示器快速了解代码文件的“运行状况”。 通过一键式代码清理从指示器中运行和配置。
  • 使用“选项”对话框中的新“预览功能”页轻松管理选择加入的预览功能。
  • 有关新建项目的改进:可基于标签进行搜索,并且可以轻松访问"最近使用的项目模板"列表。
  • 可直接从 Visual Studio 搜索创建新项,由于相关性获得改进,还可更快查找结果。
  • 借助新的通知体验,随时获取最新的重要信息,如 Visual Studio Live Share 请求。
  • 将一系列代码清理修复程序保存为配置文件,便于轻松选择要在代码清理期间运行的修复程序。
  • 触发新的 .NET 重构和代码修补程序。
  • 使用一流项目文件更轻松地配置 .NET Core 项目。
  • 使用“扩展和更新”对话框中的预览版、付费版和试用版标签查看扩展状态。
  • 由于此预览版中已重置默认值,请检查并配置要激活的预览功能。
  • 排除此版本中已标记为“弃用”的某些测试窗口 API,使扩展随时处于最新状态。
  • 使用 Azure DevOps 从开始窗口登录、浏览以及一键式克隆或连接到托管存储库。
  • 安装其他源代码管理主机的扩展以查看你和你组织拥有的存储库。
  • 体验改进的蓝色主题版本,通过调低亮度、提高整体对比度和解决其他可用性问题,解决反馈的问题。
  • 使用 dotnet format 全局工具从命令行应用代码样式偏好。
  • 默认情况下,MSBuild 和 Visual Studio 现在面向 .NET Framework 4.7.2。
  • 与 Azure 应用服务相关的功能已从服务器资源管理器中删除;可改用 Cloud Explorer 中的等效功能。

性能

  • 通过使用 Visual Studio 的新性能改进来控制解决方案的加载方式,这些改进可影响单步执行速度、分支切换速度等。
  • 请参阅任务状态中心的解决方案加载进度。
  • 使用解决方案筛选器文件选择要在打开解决方案时加载的项目。
  • 通过限制辅助组件的影响来提高键入性能。
  • 将新选项切换为禁止还原项目层次结构状态和工具窗口状态。
  • 了解“生成选项”的新快捷方式,并使用新的“全部生成”命令快速在 CMake 中执行“全部生成”操作。
  • 用于 CMake 项目中 C++ 文件的 IntelliSense 的 性能经过改进,提升了编码速度。
  • 加载更大的 .NET Core 解决方案随着时间的推移,可以显著减少内存。
  • 可使用新的项目上下文菜单命令快速加载项目依赖项。
  • 可在性能中心查看性能提示。

常规调试和诊断

  • 在调试的同时,在“监视”、“自动”和“局部变量”窗口中搜索关键字,提高了查找对象或值的能力。
  • 在检查数据时,在“监视”、“自动”和“局部变量”窗口中查看格式说明符下拉列表。
  • 使用自定义可视化工具,此工具现与 .NET Core 兼容。
  • 调试包含大量模块和 PDB 的超大型应用程序。
  • 在 Visual Studio IDE 内即可使用自定义参数启动 Google Chrome 和调试 JavaScript 应用程序。
  • 可为性能探查器中的 CPU 和 DotNet 对象分配工具使用突出显示热路径。
  • 当某个特定对象的属性值在 .NET Core 3.0+ 应用程序中更改时,可使用数据断点中断,此功能最初为 C++ 所独有。
  • 自预览版 1 开始,我们更新了用于在“自动”、“局部变量”和“监视”窗口中搜索的 UI,界面更加简单。 “深度搜索”功能已更改为一个下拉菜单,因此可快速选择初始搜索和后续搜索所需的深度。

源代码管理和团队资源管理器

  • 暂时存储更改,以便利用团队资源管理器的 Git 工具对 Git 储藏的支持来处理其他任务。
  • 查看 Visual Studio Marketplace 中提供的可选扩展 Visual Studio 的可取请求,该扩展将拉取请求评审集成到 Visual Studio 中。
  • 使用新的 Azure DevOps 工作项体验,该体验专注于开发人员工作流,包括用户特定的工作项视图、从工作项创建分支,使用 #mentions 搜索工作项,以及内联编辑。

扩展性

  • 使用 NuGet 包 Microsoft.VisualStudio.SDK 中独立、统一的 Visual Studio SDK。
  • 利用 VSIX Project 的更新立即包括 AsyncPackage。
  • 体验我们已添加的新的空 VSIX Project 模板。
  • 了解扩展是免费、付费还是试用,现在“扩展和更新”对话框中已显示有相关提示。

编程语言

C#

体验 C# 编译器现支持的 8.0 语言功能的预览,包括:

  • 可为空引用类型:开启此功能后(例如,使用 #nullable enable 或在项目级别使用 <NullableContextOptions>enable</NullableContextOptions>),如果使用 ? 注释,则引用类型将被视为可为空,否则将引用类型视为不可为空。 随后编译器分析 null 值的流向,并警告可能的不安全使用情况。
  • switch 表达式:在表达式上下文中提供类似 switch 的语义。
  • 递归模式匹配:新模式可使用测试字段/属性和位置元素(来自元组或析构函数)。
  • 支持 CoreFX 中用于切片的 Range 和 Index 类型,包括范围的 x..y 文字语法。
  • 由 IAsyncEnumerable<T> 表示的异步流可以与 await foreach 异步枚举,并且可以使用 async IAsyncEnumerable<T> 迭代器方法生成。
  • using 声明:在当前块的末尾进行释放,但不增加嵌套级别。 可以通过实现公共 Dispose() 方法来处理 ref 结构。
  • static 本地函数:标有 static 的本地函数不能引用封闭函数中的 this 或变量。
  • 本地函数和 lambdas 现在可以声明影响封闭函数变量名称的参数和局部变量。
  • 空接合赋值:如果 x 为 nullx ??= y; 仅会将 y 赋值给 x

有关详细信息,请参阅 Mads 提供的 C# 8.0 概述。

有关更多详细信息,请参阅 C# 语言功能状态和重大更改。

此外,默认情况下,可以在 Visual Studio 中使用更现代的 C# 语言功能。

C++

  • 使用可为代码提供 AI 辅助建议的可选扩展 Visual Studio IntelliCode 来编写 C++ 和 XAML 代码,以节省时间。
  • 体验编辑器内代码分析警告。 代码分析在后台自动运行,且警告显示为绿色波形曲线。
  • 试用全新模板栏,它使用速览窗口用户界面并支持嵌套模板。
  • 运行更新后的全新 C++ 生存期配置文件检查器实现。
  • 使用新的 CMake 设置编辑器配置 CMake 项目,它提供 CMakeSettings.json 的替代方案。
  • 体验一系列后端改进,包括 OpenMP SIMD 矢量化、链接时间加速和更高性能的内联。
  • 打开由外部工具(例如 CMakeGUI 或定制的元数据生成系统)生成的现有 CMake 缓存。
  • 借助用于为 Spectre Variant 1 提供迁移缓解的 /Qspectre 改进分析 (CVE-2017-5753)。 有关详细信息,请参阅 Visual C++ 团队博客文章
  • 现在模板 IntelliSense 的模板栏具有最近使用的下拉列表,可以在之前的示例参数之间快速切换。

F#

  • F# 4.6 及其他各种编译器改进功能已发布。
  • 体验适用于 F# 和 F# 工具的大型解决方案和各种 bug 修补程序的性能改进。
  • 了解开放源代码参与者对 F# 语言和工具完成的出色工作。

JavaScript/TypeScript

  • 在 Node.js 项目中调试单元测试。
  • 体验面向从 NuGet 和 npm 包生成 TypeScript 项目的用户的额外支持。

Python

  • 使用 Python“添加环境”对话框轻松添加 Python 虚拟环境和 conda 环境。
  • 更轻松地使用 Python 环境,包括通过新 Python 环境选择器工具栏对“打开文件夹”工作区支持的改进。
  • 创建 Visual Studio Live Share 会话并与其他 Visual Studio 用户协作处理 Python 代码。

Web 技术

  • 利用新增的对使用 .NET Core 3.0 项目的支持。
  • 查看 ASP.NET 的 CPU 分析。
  • 对在虚拟机、虚拟机规模集和 Azure Kubernetes 服务上运行的 .NET Web 应用使用快照调试程序。
  • 使用 Visual Studio Kubernetes 工具开发适用于 Kubernetes 的容器应用程序
  • 获取 Azure DevOps 工作项体验的增强功能,包括有关工作项分配的内联支持和改进的 #mentions 体验。
  • 更轻松地使用项目文件,同时体验针对 .NET Core 工具的更出色的控制台应用。
  • 体验针对所有应用的发布配置文件摘要增强功能。 此外,当应用发布到 Azure 应用服务时,现可使用名为依赖项的新分区。
  • 体验创建新的 ASP.NET 应用程序时的各种视觉效果
  • 为现有 Azure Functions 发布配置文件重新提供发布凭据

容器工具

  • 面向容器化和调试的单一项目更加精简。
  • Alpine 调试支持增强,并支持更多基础映像。

使用 Xamarin 进行移动开发

  • 在创建新项目时,通过缩减 Xamarin 工作负载大小更快地开始使用并提高性能。
  • 查看更详尽的生成进度信息。
  • 配合使用 Intellicode 和 Xamarin.Forms XAML。
  • 参阅 XAML 预览,无需先使用新 Xamarin.Forms 预览器中的基本预览模式构建项目。
  • 使用新 Xamarin.Forms 预览器设备下拉列表在不同设备上预览 Xamarin.Forms XAML。
  • 查看 Xamarin.Forms 控件的新属性面板。
  • 使用新增的用于 Xamarin.Forms 的 Shell 模板。
  • 体验对 Xamarin.Android 初始和增量生成性能的改进。
  • 使用部署目标菜单创建新的 Android 模拟器。
  • 使用 Xamarin.Android 中的生成改进缩短生成时间。
  • 体验增强的快速部署和针对 Xamarin.Android 的 d8/r8 支持。
  • 利用 Xamarin Android Designer 中提高的工作效率。
  • 试用 Xamarin.Android Designer 的改进功能和约束布局初始支持。
  • 使用 Xamarin Android Designer,利用转到定义和面向 Android 资源文件的增强的 XML IntelliSense/自动完成功能来提高效率。

通用 Windows 平台 (UWP)

  • 从设计器中进行修改时,将保留注释、间距、命名空间和任何其他文本更改。 程序包清单设计器对 Package.appxmanifest 文件中的 xml 更改提供原样不变的高保真度。
  • 使用适用于 .NET Core 项目的 Windows 应用程序打包项目生成 MSIX 包。
  • 使用包创建向导,可直接向 Microsoft Store 提交。
  • Visual Studio 2019 中不再支持部署到 Windows Mobile 设备。 尝试部署到 Windows 10 Mobile 设备将导致显示“Visual Studio 2019 中不再支持部署到 Windows Mobile 设备”错误。 如需继续使用 Windows 10 Mobile 设备处理应用程序,请继续使用 Visual Studio 2017。

SQL Server Data Tools

  • 体验更新的 SSDT 和 DacFX,现在包括 UTF-8 排序规则支持。

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

安装

  • 现可选择 Visual Studio 更新的安装方式。 默认模式为“全部下载后再安装”,使用此模式可在更新下载过程中继续使用 Visual Studio。 注意:如果选择“全部下载并安装”,则需要打开 Visual Studio 安装程序并选择“继续”才能完成此过程。
  • 现可在后台下载 Visual Studio 更新。 仅当计算机处于空闲状态时才会进行这些下载。 下载完成后,便会在 Visual Studio 中收到通知,指示已可安装下载内容。
  • 现可通过更改“产品更新”页中的设置来控制更新安装模式以及是否要通过“工具”>“选项”菜单下载更新。

产品更新选项

启动窗口

新的启动窗口提供简化的启动体验,可帮助在启动 Visual Studio 时快速访问代码。

  • 查看最近的项目和文件夹,只需一次单击即可将其打开。 通过上下文菜单固定并从列表中删除项目。
  • 使用任何公共或私有 git URL 克隆或签出代码,这也会自动在 IDE 中打开文件夹。
  • 登录、浏览和单击“克隆”或从 Azure DevOps 连接到托管存储库,或安装其他源控制主机的扩展以查看你和组织拥有的存储库。
  • 浏览本地磁盘或网络共享中的项目、解决方案或任何包含代码的文件夹,然后在 IDE 中将其打开。
  • 选择一个项目模板为你提供代码基架,以帮助开始使用新项目或解决方案。
  • 按标题、说明和标签搜索项目模板,或筛选可用的语言、平台和项目类型。 默认列表显示所有可用模板,而左侧窗格中显示最近使用的前 10 个项目模板列表以便快速进行访问。 使用双页向导,一次专注于一个决策。

新启动窗口体验

Shell 和平台

  • 通过经过改进的新产品图标快速确认要打开和使用的 Visual Studio 版本。 此外,新图标在多种背景下更显眼。
  • 使用刷新的蓝色主题,体验 Visual Studio 的新式外观,该主题提供更清爽的用户界面,同时仍满足我们的可访问性标准。
  • 通过 IDE 中对紧凑性的更改和回收垂直空间,查看更多代码。 我们将标题栏和菜单栏结合在一起,同时保留了现有功能。
  • 通过新的实验设置将 Visual Studio 用作每监视器感知应用程序。 启用此设置后,无论显示配置和/或缩放比例如何,此设置都可以帮助 Visual Studio 的某些部分(如 shell 和编辑器)呈现更加清晰的效果。
  • 跨菜单、命令、选项和可安装组件体验增强的搜索体验。 我们的新搜索现可动态显示结果,适应拼写错误,并在搜索结果中提供相关信息(如键盘快捷键)。

Visual Studio 中增强的搜索功能

  • 通过“文档运行状况指示器”功能查看与当前打开的文件关联的运行状况信息。

文件运行状况指示器 - 文件中的问题

文件运行状况指示器 - 没有问题

  • 作为 C# 开发人员,可以使用“代码清理”快速清理一些最常见的编码建议。
  • 通过配置“代码清理”选择要运行的一组修复程序。

配置代码清理

  • 通过扩展剪贴板循环 (Ctrl + Shift + V) 的上下文菜单查看剪贴板历史记录的内容。

剪贴板循环上下文菜单

  • 已通过以下方式改进搜索体验:

    • 为菜单、组件和模板添加了筛选器
    • 系统会结合搜索选项,提供相关性最高的搜索结果
    • 可直接从 Visual Studio 创建新项目/项并将其添加到解决方案
  • 对于满足最低要求(.NET 4.8 预览版和 Windows 10 2018 年 4 月更新及更高版本)的用户,现在默认情况下会启用改进的每监视器感知 (PMA) 体验。 工具箱、断点、监视、局部变量、自动和调用堆栈等工具窗口已转换为 PMA,因此无论显示配置和/或缩放比例如何,都会清晰呈现。
  • 新的通知体验增加了以下各项:
    • 状态栏新增了图标和计数器
    • 新的 toast 通知机制
    • Visual Studio 更新通知和 Visual Studio 许可过期通知
  • 修改后的蓝色主题调低了亮度、提高了对比度并解决了其他可用性问题,从而解决了反馈的问题。
  • 利用工具栏区域中的可用空间作为可拖动区域,增强了窗口拖动功能。
  • 现可将一组代码清理修复程序保存为配置文件,这样便可快速选择要在代码清理期间运行的修复程序集。

Visual Studio Code 清理配置文件

  • 我们在“扩展和更新”对话框中添加了标签,可帮助你快速了解扩展是预览版、付费版,还是处于试用期。

带有标签的“扩展和更新”对话框

  • 在 Visual Studio 2019 及更高版本中实现数据工具提示的推荐方法现为 IAsyncQuickInfoSourceProvider。 Visual Studio 2019 预览版 1 中已弃用旧版编辑器快速信息 API IVsTextTipData 和 TextTipData。
  • 为支持 LightBulb API,已弃用编辑器智能标记(Microsoft.VisualStudio.Language.Intellisense 命名空间中的 ISmartTag* 接口系列),从 Visual Studio 2019 预览版 1 开始,不再支持该标记。
  • 由于使用率较低,已删除解决方案选项“显示高级生成配置”、“始终显示解决方案”和“在创建时保存新项目”。 这些值已设置为默认值“True”。
  • 使用“工具”>“选项”>“环境”>“预览功能”中的新“预览功能”页选择加入或退出某些预览功能。

性能

  • 为文件夹和解决方案的“生成选项”添加了新的快捷方式:Ctrl + B。
  • 通过加载解决方案并卸载所有项目,快速打开大型解决方案。 
  • 使用解决方案筛选器文件选择要在打开解决方案时加载的项目。
    • 通过卸载不希望自动打开的项目创建解决方案筛选器文件,右键单击解决方案,然后选择“另存为解决方案筛选器”。 然后,可使用筛选器文件打开解决方案供以后使用。 
  • 为 CMake 文件添加了“全部生成”命令:Ctrl + Shift + B。
  • 为 CMake 项目中的 C++ 文件改进了 IntelliSense 性能。
  • 添加了一个命令,可用于将卸载的项目依赖项加载到项目和解决方案上下文菜单中。
  • 性能中心现会保留用于提高 Visual Studio 性能的通知提示,可通过“帮助”>“管理 Visual Studio 性能”访问。
  • 现可在任务状态中心查看解决方案加载进度,以及解决方案加载完成后的警报。
  • 使用解决方案筛选器文件选择要在打开解决方案时加载的项目。
    • 通过卸载不希望自动打开的项目创建解决方案筛选器文件,右键单击解决方案,然后选择“另存为解决方案筛选器”。 然后,可使用筛选器文件打开解决方案供以后使用。
  • 在打开文件夹方案中按 Ctrl + T,可体验改进的生成资产发现和文件搜索。
  • Visual Studio 编辑器现在将限制辅助组件对键入性能的影响,改进了性能。 具体而言,它会在键入时自动取消任何长时间运行的非必要操作。
  • 可通过“工具”>“选项”>“文本编辑器”>“高级”来配置 Visual Studio 辅助组件限制行为:

Visual Studio 键入延迟选项

  • 现可在“解决方案资源管理器”工具窗口中禁用从上一个会话还原项目层次结构状态。 我们实施了此更改,因为在解决方案打开时从上一个会话还原项目层次结构可能会延迟解决方案加载。

    • 在“工具”>“选项”>“项目和解决方案”>“常规”中切换此选项。

解决方案负载还原设置

现可从上一个会话中禁用工具窗口的状态还原,并改为始终在启动时加载解决方案资源管理器和团队资源管理器。\* 实施此更改是因为从上一个会话还原工具窗口可能会在启动时延迟解决方案加载。 在“工具”>“选项”>“环境”>“启动”中切换此选项。

常规调试和诊断

常规调试

  • 使用在“监视”、“自动”和“局部变量”窗口中集成的新搜索功能,突出显示、查找和导航关键字。

在“监视”窗口中搜索

  • 通过在列出的项目后附加逗号,在“监视”、“自动”和“局部变量”窗口中查看用于设置数据格式的说明符和选项下拉列表。

“监视”窗口中的格式说明符下拉列表

  • 现可使用针对 .NET Core 的自定义支持和数据集可视化工具支持。

适用于 .NET Core 应用程序的数据集可视化工具

  • 对于在 Windows 上运行的 C++ 应用程序,PDB 现可在单独的 64 位进程中加载。 此更改解决了在调试包含大量模块和 PDB 的应用程序时,由调试程序耗尽内存导致的一系列故障。

托管数据断点

当某个特定对象的属性值在 .NET Core(3.0 或更高版本)应用程序中更改时,现可使用数据断点中断,此功能最初为 C++ 所独有。 它们是绝佳的替代方案,如果有上百个对象调用该函数,则只需在属性的 setter 上设置断点,因为数据断点可以专注于特定对象的属性,即使该属性不在范围内,而前者可能导致经常出现不相关的中断。

.NET Core 应用程序中的数据断点

监视窗口搜索用户体验更新

我们更新了用于在“自动”、“局部变量”和“监视”窗口中搜索的 UI,界面更加简单。 “深度搜索”功能已更改为一个下拉菜单,因此可快速选择初始搜索和后续搜索所需的深度。

应用代码样式首选项

  • 现在可使用 dotnet format 全局工具从命令行应用代码样式偏好。 要进行安装,需要 .NET Core 2.1 SDK 或更高版本。 在常用终端中运行以下命令:dotnet tool install -g dotnet-format --version 3.0.0-beta4-19105-10

从命令行运行 dotnet 格式。

扩展性

  • 无法再从 Visual Studio 2019 中安装使用 V1 vsixmanifest 扩展格式生成的扩展。 V1 是在 Visual Studio 2010 中引入的,在 Visual Studio 2017 中已弃用,因为它可能会导致 Visual Studio 出现可靠性问题。 在 Visual Studio 2019 中,已完全删除对 V1 的支持。 应该将针对 Visual Studio 2019 的扩展重新生成为 vsixmanifest 格式的 V2 或 V3。
  • 以同步方式自动加载扩展时,用户现在可收到通知。 请注意,在此版本中,扩展可正常加载并运行,但在下一次 Visual Studio 2019 更新中可能无法正常运行。 有关详细信息,请参阅我们有关如何通过更新扩展的自动加载行为来提高关键方案的响应能力的博客文章。

统一的 SDK NuGet 包

过期,扩展创建者需要在其扩展中使用 Visual Studio SDK 的 NuGet 包时,必须单独一个一个地引用。 各个包的版本并不总是相一致,因此通常导致在编译时出现依赖项冲突和运行时问题。

若要解决这些问题,请使用名为 Microsoft.VisualStudio.SDK 的新包,该包中包含构成 Visual Studio SDK 的所有包的依赖项。 使用此包可解决版本不匹配的问题以及轻松知晓要使用的版本。 只需使用对应于扩展支持的 Visual Studio 的最低版本的包版本,即可访问整个 SDK。

现在,只存在 15.9 版的 SDK 包,但在随后的几个月里将在版本 14.0 的基础上发布更多包版本。

新的和更新的项目模板

VSIX Project 模板已进行过多次更新,旨在简化该模板并使其更易于使用:

  • 使用新的统一的 SDK NuGet 包
  • 包括 AsyncPackage 类
  • 编译包不再需要 .resx 文件
  • 以 .NET Framework 4.7.2 为目标

已创建一个新的空 VSIX Project 模板,该模板与VSIX Project 模板相同,只是未包含 AsyncPackage 类。 它还应用统一的 SDK NuGet 包,用于为 MEF 扩展和其他无包扩展类型提供一个良好的起点。

免费/付费/试用

查看扩展是被标记为免费、付费还是试用并不是那么容易。 现在这种情况已发生改变,在“扩展和更新”对话框内部,每个扩展都将被清晰地标记为试用或付费。 没有试用/付费标签的扩展即为免费。

测试工具

“测试”窗口中以前未记录但标记为公共的其他 API 已添加到弃用列表中。

源代码管理

  • 团队资源管理器的 Git 工具现在支持 Git 储藏,因此可暂时存储更改,以便处理其他任务。
  • 在 Visual Studio 2019 中使用全新的拉取请求体验,在无需离开 IDE 的情况下查看、运行甚至调试来自 Azure Repos 的拉取请求。 要开始使用,可从 Visual Studio Marketplace 下载 Visual Studio 的拉取请求扩展。

新拉取请求体验

MSBuild

  • MSBuild 工具集版本已从 15.0 更改为 Current。 MSBuild.exe 现包含在 %VSINSTALLDIR%\MSBuild\Current\Bin\MSBuild.exe 中。
  • MSBuild(和 Visual Studio)现面向 .NET Framework 4.7.2。 若想要使用新的 MSBuild API 功能,必须升级程序集,但现有代码将继续工作。

C#

对于 Visual Studio 2019 之前的每个版本,默认的 C# 语言版本始终等同于“最新版本”。 在 Visual Studio 2017 中,C# 发展并发布了三个次要版本:7.1、7.2 和 7.3。 但是,新项目仍然默认为 C#7.0。 对于想要使用新功能但不得不手动更改每个新项目的语言版本的 C# 开发人员而言,这种结果令人沮丧。

若要解决此问题,默认的 C# 语言版本由其目标框架确定:

  • 如果以 .NET Core 3.0 预览版为目标,则 C# 语言版本将是 C#8.0 预览版。
  • 如果以 .NET Framework 或任何非 .NET .NET 预览版为目标,则 C# 语言版本将是 C#7.3 及早期版本。

这允许默认使用最新的稳定 C# 语言功能,并且在使用 .NET Core 预览时,使用与 .NET Core 3.0 预览一致的 C#8.0 预览语言功能。

如果在项目或道具文件中通过 LangVersion 指定语言版本,则该语言版本将覆盖先前描述的默认值。

C++

  • Visual Studio Live Share 现支持 C++,可用于实现实时协作。
  • 通过使用可选扩展 IntelliCode 来节省时间,该扩展使用其广泛的培训和代码上下文,将用户最有可能使用的内容放在完成列表的顶部。 对于 C++,IntelliCode 可针对使用 STL 等热门库提供最大帮助。
  • 我们修改了几个项目模板名称和描述以适应更新的“新建项目”对话框。
  • 我们删除了 Clang/C2 实验性组件。 使用 MSVC 工具集,以完全符合 /permissive- 和/或 /std:c++17 的 C++ 标准,或者适用于 Windows 的 Clang/LLVM 工具链。 有关更多详细信息,请参阅  Visual C++ 团队博客 。
  • 我们已弃用 C++ 编译器 /Gm 交换机。 如果已显式定义,请考虑在生成脚本中禁用 /Gm 交换机。 或者,也可以安全地忽略针对 /Gm 的弃用警告,因为在使用“将警告视为错误”(/WX) 时不会将其视为错误。
  • 现在,C++ Android 体验默认为 Android SDK 25 和 Android NDK 16b。

工作效率

  • 代码分析现可自动在后台运行。 键入时,警告在编辑器中显示为绿色波形曲线。
  • 模板栏现使用速览窗口用户界面而不是模式窗口,它支持嵌套模板,并且可以将任何默认参数预先填充到速览窗口中。
  • 通过相关行上的灯泡菜单可使用 NULL-> nullptr 代码分析警告 (C26477 USE_NULLPTR_NOT_CONSTANT) 的自动修复功能,C++ Core Check 类型规则集中默认启用了此功能。 IDE 中的其他快速修复功能包括添加缺失的 #include 指令、修复缺失的分号,以及修复不正确的“*”、“&”用法。
  • 对于 C++ 控制台和桌面应用,默认情况下不再生成预编译头文件。
  • “转到定义”现可用于 #include 指令,可打开相应的文件。 它包含 F12 快捷方式,提供了一种用于浏览代码的简便方法。
  • 将鼠标悬停在代码块的右大括号上,可获得有关此代码块上下文的一些有用信息。
  • 在 ConcurrencyChecker 中添加了对<互斥>标头中常见的 STL 类型的支持。
  • 生存期配置文件检查器的部分更新的实现可用于检测无关联指针和引用。
  • 在编译器中为 C++ 20 运算符<= >(“宇宙飞船”)添加了初始支持,可用于进行三向比较。

CMake

  • 为 CMake 项目中的 C++ 文件改进了 IntelliSense 性能。
  • Visual Studio 可检测 Linux 计算机上是否具有兼容的 CMake 版本,从而帮助你在 Linux 上使用 CMake 启动 C++ 开发。 如果没有兼容的版本,它会自行安装。
  • CMake 设置编辑器提供了 CMakeSettings.json 的替代方案,并且可进行一些 CMakeGUI 奇偶校验。
  • CMake 菜单已被删除并进行了调整,以便与项目和解决方案更加匹配。
  • CMakeSettings 中不兼容的设置(例如不匹配的体系结构或不兼容的 CMake 生成器设置)在 JSON 编辑器中显示为波形曲线,并在错误列表中显示错误。
  • 对于运行 vcpkg integrate install 后在 IDE 中打开的 CMake 项目,将自动为其检测并启用 vcpkg 工具链。 可通过在 CMakeSettings 中指定空工具链文件来关闭此行为。
  • CMake 项目现默认启用“仅我的代码”调试。
  • 静态分析警告现可在后台进行处理,并显示在 CMake 项目的编辑器中。
  • 我们为 CMake 项目添加了更明晰的有关生成和配置的“开始”及“结束”消息,并添加了对 Visual Studio 生成进度用户界面的支持。此外,“工具”>“选项”中现提供 CMake 详细级别设置,用于在输出窗口中自定义 CMake 生成和配置消息的详细级别。
  • CMakeSettings 现支持“cmakeToolchain”设置,无需手动修改 CMake 命令行即可指定工具链。

后端

  • 我们已实现生成吞吐量改进,包括 PDB 类型合并和创建过程中,链接器对文件 I/O 和链接时间的处理。
  • 添加了对 OpenMP SIMD 矢量化的基本支持。 通过新的 CL 开关 -openmp:experimental 即可启用此项支持。 这样会使带“#pragma omp simd”注释的循环被矢量化。 无法保证矢量化,已注释但未矢量化的循环将收到系统警告。 如果不支持 SIMD 子句,则只会将其忽略并报告警告。
  • 添加了一个新的内联命令行开关 -Ob3,它是 -Ob2 的更高版本。 -O2(优化速度二进制)仍默认为 -Ob2;如果发现编译器内联不足,请考虑传递 -O2 -Ob3。
  • 为了支持循环(包含对数学库函数的调用和整数除法等某些其他操作)的手动矢量化,添加了对短向量数学库 (SVML) 内部函数(用于计算 128 位、256 位或 512 位的向量等效项)的支持。 有关支持的函数的定义,请参阅 Intel 内部函数指南。
  • 新的和已改进的优化:
    • 可使用 SIMD(向量)内部函数简化表达式的常量合并和算法(针对浮点和整数形式)
    • 提供更强大的分析功能,帮助从控制流(if/else/switch 语句)中提取信息以删除被证明为 true 或 false 的分支
    • 改进了 memset 展开,可使用 SSE2 向量指令
    • 改进了无用 struct/class 副本(特别是针对按值传递的 C++ 程序)的删除操作
    • 改进了使用 memmove(如 std::copy 或 std::vector 和 std::string 构造)优化代码的过程

弃用功能

  • 托管的 C++ 测试项目模板不再可用。 可在现有项目中继续使用托管的 C++ 测试框架,对于新的单元测试,请考虑使用 Visual Studio 为其提供模板(MSTest、Google Test)的某个本机测试框架或托管的 C# 测试项目模板。
  • Visual Studio 安装程序中不再提供 Windows 8.1 SDK。 请将 C++ 项目升级到最新的 Windows 10 SDK。 如果在 8.1 上具有硬依赖项,则可以从 Windows SDK 存档下载它。
  • Windows XP 目标将不再适用于最新的 C++ 工具集。 仍支持使用 VS 2017 级 MSVC 编译器和库的 XP 目标定向,并且可通过“单个组件”进行安装。
  • 我们的文档不推荐使用 Merge 模块部署 Visual C++ 运行时。 此版本执行了额外步骤,将 MSM 标记为已弃用。 请考虑将 VCRuntime 核心部署从 MSM 迁移到可再发行组件包。
  • 以下 C++ ATL/MFC 向导不再可用:ATL COM + 1.0 组件向导、ATL Active Server Pages 组件向导、ATL OLE DB 提供程序向导、ATL 属性页向导、ATL OLE DB 使用者向导、MFC ODBC 使用者、ActiveX 控件中的 MFC 类和类型库中的 MFC 类。 这些技术的示例代码存档在 Microsoft Docs 和 VCSamples GitHub 存储库中。

F#

Visual Studio 2019 中的 F# 改进主要包括三个方面:

  • F# 4.6
  • 中型和大型解决方案的主要性能改进
  • 我们优秀的开放源代码社区开发了大量开源工作

F# 4.6

此版本包含 F# 4.6 语言:

  • 匿名记录类型已添加到该语言中,包括完整的工具支持以及通过 Fable 编译器将它们类型发送到 JavaScript 对象的功能。
  • ValueOption 类型和与 Option 类型对等的 ValueOption 模块函数。
  • 用于数组、列表和序列的 tryExactlyOne 函数(由 Grzegorz Dziadkiewicz 提供)。

F# 编译器和 FSharp.Core 的改进

F# 和编译器以及 FSharp.Core 已经可见许多改进,尤其是来自开放源代码参与者的改进:

  • fsi.exe 和 fsc.exe 现在默认为 .NET Framework 4.7.2,从而允许加载面向此框架或更低版本的组件 (#4946)。
  • 我们优化了要执行的结构和结构记录上的方法,以及类和基于类的记录上的方法 (#3057)。
  • 我们优化了 F# 代码中组合布尔逻辑的发出 IL(#635)。
  • 优化了在 F# 的字符串中对 + 的使用,以尽可能实现最少的 String.Concat 调用数 (#5560)。
  • 我们修复了 FSharp.Core 包中的一个问题,即包括带有测试资产的某些额外目录。 FSharp.Core 4.5.5 和 4.6.1 中应具有该修补程序 (#5814)。
  • 当用户定义的属性不从 Attribute 类继承时,用户将收到来自 Vasily Kirichenko 的警告。
  • 项目文件中的 AssemblyInformationVersionAttribute 值现在支持任意值,以支持 SourceLink 等方案(#4822)。
  • Steffen Forkmann修复了使用活动模式的非法语法导致内部编译器错误的 bug (#5745)。
  • BooksBaum 修复了错误地将 Module 后缀添加到递归模块中的模块,以匹配唯一差异是通用参数的类型的 bug (#5794)。
  • Alan Ball 改进了类型参数与类型名称不相邻时对错误消息的改进 (#4183)。
  • Teo Tsirpanis 在无效数字文字的错误消息中正确列出了 uint16 文字后缀 (#5712)。
  • 计算表达式的错误消息不再在消息中声明 async,而是 引用“计算表达式”,由 John Wostenberg 实现 (#5343)。
  • Bartoz Sypytkowski 修复了在 F# 交互中错误引用 .dll 时的错误消息 (#5416)。
  • Victor Peter Rouven Müller 修复了错误:静态解析的类型参数无法调用隐藏继承成员的成员 (#5531)。
  • Steffen Forkmann 和 Robert Jeppesen 增加了对编译器的各种较小性能改进。

F# 性能改进

Visual Studio 2019 中 F# 的另一个重点关注领域是中型和大型解决方案的性能。 我们解决了一些长期存在的问题,其中一些可以追溯到 Visual Studio 的第一版 F# 工具。 我们也从优秀的 F# 开源社区获得了一些帮助。

  • 我们改进了 Roslyn 初始化 F# 语言服务的方式。 大型解决方案的类型着色总体上应该会显示地更快。
  • 我们更改了源文本的表示形式可避免在一段时间内产生大量分配,尤其处理大型文件时(#5935、#5936、#5937、#4881)。
  • 我们将小规模编辑的生成缓存更改为文件以便使用更少内存 (#6028)。
  • 我们修改了编译器功能,该功能在输入未识别的令牌时建议只按需计算这些建议,从而在较大的解决方案中缓慢输入时显著减少 CPU 和内存 (#6044)。
  • 我们更改了 IntelliSense,使其默认情况下不再显示未打开的命名空间中的符号。 这显著提高了 IntelliSense 在具有多个引用的项目中的性能。 可以通过“工具 > 选项 > 文本编辑器 > F# > IntelliSense”在设置中重新打开此功能。
  • 我们改进了使用类型提供程序在完成列表中生成大量所提供类型时的内存使用率 (#5599)。
  • Avi Avni 修复了将 CPU 和内存使用减少到内部字符串比较算法(用于建议无法识别的名称)的问题 (#6050)。
  • Avi Avni 修复了大型字符串分配中突出的源问题,特别是对于 IDE 工具 (#5922)。
  • Chet Husk 修复了一个来自计算 IntelliSense 的大型对象堆分配的显著来源 (#6084)

F# 工具改进

除了性能改进之外,Visual Studio 2019 的 F# 工具还进行了其他各种改进:

  • 添加 open 语句代码修复现在默认为在文件顶部添加 open 语句。
  • 我们修复了用户代码中的 match! 使结构指南和后续作用域的代码大纲节点失效的 bug (#5456)。
  • 编辑器现在可通过可变值着色将 byrefoutref 和 ref 值正确地标记记录字段的颜色 (#5579)。
  • 我们修复了重命名重构无法识别符号名称中的 ' 字符的 bug (#5604)。
  • 我们修复了一个长期存在的 bug,即重命名 F# 脚本文件导致着色数据丢失 (#1944)。
  • 我们清理了 IntelliSense,这样当按下退格键时,它就不会显示列表中不相关的项。
  • 打开“智能”缩进后,在将 F# 代码粘贴到编辑器中时,现在将对该代码进行格式设置,以匹配基于当前光标位置的相应范围,由 Saul Rennison 实现 (#4702)。
  • Jakob Majocha 修复了 F# 编辑器选项无法同步的问题(#5997、#5998。
  • Eugene Auduchinok 修复了 inherit 子句中构造函数的 IntelliSense 无法显示主构造函数的 bug (#3699)
  • Eugene Auduchinok对 F# 语言服务进行了各种较小的改进

F# 开源基础结构

我们已经完全迁移了 F# 和 F# 工具代码库,以便使用 .NET SDK。 这极大地简化了开发人员的贡献过程,尤其是如果他们不使用 Windows 时。 此外,Jakob Majocha 还根据代码库的变化帮助新参与者清理文档。

Python

根据客户反馈,Visual Studio 2019 包含管理 Python 环境的全面体验:

  • 我们添加了一个新的“添加环境”对话框,简化了在项目中创建和添加虚拟环境和 conda 环境的体验。
  • Visual Studio 安装程序不再安装完整版本的 Anaconda,减小了 Visual Studio 安装大小,避免了升级期间出现错误。
  • Miniconda 作为一个可选组件与 Python 工作负荷捆绑在一起,这样无需安装 Miniconda/Anaconda 即可创建 conda 环境。
  • 如果项目的根目录中存在 requirements.txt(虚拟环境)或 environment.yml(conda 环境),现在系统将自动提示用户添加环境。
  • 修改 Python 文件时,可使用新的 Python 环境工具栏。 利用新的工具栏,可在处理项目、使用“打开文件夹”工作区或其他项目中的松散 Python 文件时,在不同的 Python 解释器之间进行切换。
  • 对在 Python IntelliSense 中自动完成的质量的改进,改进了相对路径和命名空间导入的检测。
  • Django 项目模板已更新,可支持 Django 2.x。
  • 函数返回值现可显示在 Python 调试程序中。
  • 现可创建 VS Live Share 会话并与其他 Visual Studio 用户协作处理 Python 代码。 以前,仅在加入从 Visual Studio Code 创建的会话时才支持 Python。

JavaScript/TypeScript

  • 我们已添加在 Node.js 项目的单元测试中启用 JavaScript 调试的相关支持。 这是 Node.js 客户一直以来所期待的功能。
  • 现在,JavaScript/TypeScript 语言服务将自动加载到安装了 TypeScript NuGet 包或 npm 包的项目中(NuGet包支持 TypeScript 3.2 及更高版本,npm 包支持 TypeScript 2.1 及更高版本)。
  • 在语言服务方面已实现性能改进,因为提高了语言服务的内存上限,它可以处理更大型的项目。
  • 默认情况下,错误列表中不再显示已关闭的 JavaScript/TypeScript 文件的诊断信息。
  • 旧版 JavaScript 语言服务不再可用。 以前,用户可以选择还原旧版 JavaScript 语言服务。 用户现在可以使用现成的新 JavaScript 语言服务。 新的语言服务基于 TypeScript 语言服务,由静态分析提供支持。 这可提供更好的工具,因此 JavaScript 代码可以从基于类型定义的更丰富的 IntelliSense 中受益。 新服务是轻量服务,比传统服务消耗更少的内存,其代码可以缩放,因而可为用户提供更好的性能。

团队资源管理器和 Azure DevOps

我们改进了 Azure DevOps 中的 Git 工作项体验。

  • 可使用新的标识选取器为自己或其他人员分配工作项。 默认情况下,系统会显示最近使用过的人员列表。 也可使用搜索功能搜索并查找组织中的其他人员。
  • 我们改进了提交消息中的 #mentions 体验。 从 #mention 选取器中选择某个工作项时,该工作项自动添加到“相关工作项”列表中。

分配工作项和 #mention 改进

突出显示热路径

  • 在性能探查器的 CPU 使用情况和 DotNet 对象分配工具中,添加了对突出显示热路径功能的支持。 选择调用树中的任何功能,然后按热路径按钮,可展开 CPU 使用情况或 Dot Net 对象分配热路径。 可通过此功能轻松确定 CPU 占用百分比最高或对象分配数最多的函数调用。

CPU 使用情况工具中的突出显示热路径工具

.NET 和 ASP.NET 工具

  • 所有应用程序的发布配置文件摘要页已进行了各种细微的 UX 改进(新的分区标头和操作/快捷方式)。
  • 将 ASP.NET 应用程序发布到 Azure 应用服务时,发布配置文件摘要页现具有一个名为“依赖项”的新分区。 这一新分区目前可用于将 Azure 存储和 Azure SQL 资源与应用服务实例相关联。 预计未来将通过此机制提供更多 Azure 服务。
  • 通过增加的兼容性,配合使用代码度量和 .NET Core 项目。
  • 通过“工具”>“选项”>“文本编辑器”>“C#”>“代码样式”,使用“从设置生成 .editorconfig 文件”按钮将编辑器设置导出到 Editorconfig文件。
  • 使用 C# 和 Visual Basic 的新 Regex 分析器支持。 现可识别正则表达式,并在其上启用了语言功能。 将字符串传递给 Regex 构造函数时,或者字符串前面紧跟着包含字符串 language=regex 的注释时,可以识别正则表达式字符串。 此版本中包含的语言功能包括分类、大括号匹配、突出显示引用和诊断。

正则表达式分析器支持

  • 现可对未使用的私有成员使用死代码分析,并使用可选的代码修复来删除未使用的成员声明。
  • 访问器上的“查找引用”功能现在仅返回针对该访问器的结果。
  • 我们添加了一个用于生成析构方法的代码修补程序。
  • 将代码粘贴到文件中时,可以添加“Using”语句。 粘贴已识别的代码后会出现代码修补程序,提示添加相关的缺失导入。
  • 现在可使用“Ctrl + .” 或“Alt + Enter”实现更多重构和快速操作:
    • 用于隐含“await”但省略的情况,现在有编译器警告。
    • 用于将本地函数转换为方法。
    • 用于将元组转换为命名结构。
    • 用于将匿名类型转换为类。
    • 用于将匿名类型转换为元组。
    • 用于 LINQ 查询或 LINQ 方法的 foreach 循环。
  • 现在已添加对在 Azure Kubernetes 服务中运行的 ASP .NET Core 应用程序的支持。 要开始使用,请参阅 GitHub 上的此 docker 示例。
  • 性能探查器的 CPU 使用情况工具中现在支持 ASP.NET。

性能探查器中的 CPU 使用情况工具

  • 现可使用查找所有引用 (Shift+F12) 和 CodeLens 在 .NET Core 项目中显示来自 Razor (.cshtml) 文件的结果。 然后,可以导航到相关 Razor 文件中的已识别代码。
  • 我们已经添加了对在 Windows 虚拟机 (VM) 和 VM 规模集上运行的 ASP .NET(核心和桌面)应用程序的支持。

Snapshot Debugger 目标选择 UI

  • 使用 FxCop 运行代码分析时,现在可收到警告。 推荐使用 .NET 编译器分析器来执行代码分析。 深入了解如何迁移到 .NET 编译器平台分析器。
  • 可移植类库 (PCL) 项目模板不再可用,默认情况下不会安装项目支持。 旨在面向多个平台的新项目应使用 .NET Standard 项目类型。 需要 PCL 项目支持的客户必须从 Visual Studio 安装程序中的“单个组件”选项卡单独安装该组件。
  • “Project.CopyWebSite”命令不再可用。 此功能仅适用于 .NET 的“网站”项目类型。 可通过此功能同步两个网站,使每个网站具有相同版本的文件。 在 Visual Studio 2019 中,可以从 Visual Studio 外部的远程目标复制文件,然后打开项目。
  • 已删除从远程 FTP 位置打开网站项目的功能。 FTP 用户可从 Visual Studio 外部的远程目标复制文件,打开项目并进行更改,然后使用发布功能将它们推送回远程 FTP 位置。
  • ASP.NET 和 Web 工作负载不再安装自定义 CoffeeScript 编辑体验。 Visual Studio 的 TextMate 包提供了使用 CoffeeScript 的卓越体验。
  • 编辑这些文件时,CSSLint 和 CoffeeLint 的内置副本当前生成的 CSS 和 CoffeeScript 错误不再自动呈现。 使用替代方法来运行诸如 npm 或 Visual Studio 任务运行程序资源管理器之类的 Linter。
  • Visual Studio 不再为 Knockout HTML 属性提供 IntelliSense。 在 Visual Studio 2019 中,需要键入属性。
  • 已删除在 ASP.NET 项目中使用旧版 Chrome 调试程序来调试 JavaScript 的功能。 可以继续使用 Visual Studio 中当前内置的 Chrome 调试程序。
  • 已删除在 ASP.NET 项目中使用 JavaScript 控制台功能的能力。 我们建议客户使用其最喜爱的浏览器 devtools 中包含的控制台。

容器工具

  • 添加了简化的面向容器化和调试的单一项目体验:

    • ASP.NET Web 应用程序 (.NET Framework)
    • 控制台应用程序 (.NET Core)
  • 添加了对 ASP.NET Core 应用程序(使用 Alpine 作为基础映像)调试的支持。
  • 添加了对最新 ASP.NET 和 .NET Core 映像的支持。

.NET Core 工具

.NET Core 3.0

如果安装了 SDK 预览版,则可使用此版本创建面向 .NET Core 3.0 的 ASP.NET Core、控制台和类库项目。

如果使用的 Visual Studio RC,则还需要转到“工具”>“选项”>“项目和解决方案”> .NET Core,再勾选“使用 .NET Core SDK 预览版”复选框。 如果在使用 Visual Studio 预览版,则无需执行此操作。 有关此设置及其行为的详细信息,可参阅面向 Visual Studio 2017 版本 15.9 的 .NET Core 工具更新。

此外,可使用“dotnet new”命令为 .NET Core 3.0 创建 Windows 窗体或 WPF 项目。 然后,可在 Visual Studio 2019 中打开这些项目。

新增功能

从此版本开始,.NET SDK 样式项目的项目文件将作为 Visual Studio 中的一类文件类型。 现支持以下操作:

  • 双击项目节点,可打开项目文件
  • 单击项目节点,可在“预览”选项卡中打开项目文件
  • 可使用“转到全部”(ctrl + T) 按名称查找项目文件
  • 现可使用“在文件中查找”搜索项目文件中的 MSBuild 元素
  • 如果触发项目创作错误,则可以从错误列表中打开

此外,在控制台应用中,.NET SDK 样式的项目现将通过 F5 和 ctrl + F5 应用新集成的控制台体验。 这会使从 Visual Studio 启动控制台应用程序的体验一致化:

  • 对于 F5,当应用执行完毕后,控制台窗口不会自动关闭。 无需再将 Console.Read() 调用添加到控制台应用中。
  • 对于 ctrl + F5,将在应用的后续运行中重复使用控制台窗口。 不再需要关闭控制台窗口的负载。

在新的控制台窗口打开时,按一个键即可使其自动关闭,也可以选择“工具”>“选项”>“调试停止时自动关闭控制台”下的选项将其关闭。

现在已将许可证表达式和许可证文件的支持添加到项目属性页中。 这与在 NuGet 中弃用 licenseUrl 的更改一致。

性能改进

  • 大型解决方案的可伸缩性得到了显著改善,允许使用比以前更大的 .NET Core 解决方案。
  • 大型项目的解决方案加载时间已显著减少,加载时的 CPU 和内存使用情况也是如此。

功能奇偶一致性与非 .NET Core 项目相同

  • 由来己久的问题,即在设计时未遵守配置更改,从而迫使项目重新加载,这一问题已经得到解决。
  • 现在“转到定义”可从 Razor 转到 ASP.NET Core 项目中的 C#。
  • 现在支持 AvailableItemName 项目。
  • 现在支持自动嵌套依赖文件,可通过 globbing 添加到项目中。
  • William Kent 添加了对 XamlAppDef 的支持。

可在 16.016.0 预览版 216.0 预览版 3 和 16.0 预览版 4 里程碑中找到问题和拉取请求的完整列表。

.NET 效率

  • .NET 重构和代码修复程序:

    • 同步命名空间和文件夹名称
    • 拉取成员,使用对话框选项进行重构

    “拉取成员”对话框

    • 形参/实参的自动换行/缩进/对齐列表
    • 将匿名类型转换为元组
    • 将表达式/块主体用于 lambda
    • 反转条件表达式和逻辑运算
    • 自动关闭块注释“/”
    • 转换为复合赋值
    • 修复程序隐式类型变量不能是常量
    • 自动修复程序用于在键入内插逐字字符串时用 $@" 替换 @$"
    • 完成 #nullable enable|disable
    • 用于未使用的表达式值和参数的修复程序
    • 使提取接口能保留在同一文件中的修复程序
  • 按读/写对引用进行分类。

  • 为 csharp_prefer_braces 添加 Editorconfig when_multiline 选项。

  • .NET Compiler Platform SDK(又名 Roslyn)提供了新的分类颜色。 将逐步推出新的默认颜色(类似于 Visual Studio Code 颜色)。可以在“工具”>“选项”>“环境”>“字体和颜色”中调整这些颜色,也可以在“环境”>“预览功能”中,通过取消选中“使用增强颜色”复选框来关闭这些颜色。 我们十分欢迎你提供有关此更改对你的工作流所产生的影响的反馈。

新的 Roslyn 分类颜色

ASP.NET 项目中的 JavaScript 调试

  • 如果使用 ASP.NET 项目的“浏览方式...”菜单添加了带有自定义参数的新的 Google Chrome 浏览器,则 Visual Studio 现在将在启动调试时为应用程序启用 JavaScript调试。 启动 Chrome 时,将会应用 Google Chrome 的自定义启动参数。

使用“浏览方式...”添加带有自定义参数的 Google Chrome

注意:默认情况下,除非提供数据目录的路径作为参数,否则 Visual Studio 将使用不同于常规 Chrome 实例的数据目录启动 Chrome。 因此,如果在使用此 Chrome 实例时需要任何扩展,则需要先安装这些扩展。

ASP.NET 和 Azure Functions 工具

  • Visual Studio 2019 随附创建新项目的新体验。 具体而言,在创建新的 ASP.NET 项目时,Visual Studio 会提供附加对话框,为 ASP.NET 提供特定的选项。 这些附加对话框已进行更新,以匹配该体验其余部分的视觉样式。
  • 目前,Visual Studio 中的发布凭据已进行加密并且存储在发布配置文件的用户文件中,因此不必在每次发布应用程序时重新输入它们。 默认情况下,源代码管理中一般不包含用户文件,因为这些文件中很可能包含不应共享的机密和/或个人信息。 直到现在,如果 Azure Functions 项目的发布配置文件已签入源代码管理,但用户文件未签入到其中,则找不到发布凭据并且无法重复使用发布配置文件。 现在,我们允许编辑这些凭据以及创建新的用户文件,因此可重复使用发布配置文件。

性能向导

在 Visual Studio 2019 中,性能向导中提供的分析体验已移至性能探查器。 可以在性能探查器的检测工具中找到用于采样和检测的 CPU 使用工具。 通过此更改,不再需要性能向导,已从 Visual Studio 2019 中将其删除。 此外,VS 性能命令行工具中的采样选项已被删除,即将推出的预览版中将发布替换命令行工具。

测试工具

  • 现在可以在解决方案资源管理器中右键单击测试、测试类或测试项目,以运行或调试测试。
  • 测试运行现在自动检测在项目属性中设置的处理器体系结构。
  • 诸如 Selenium 和 Appium 等 OSS UI 测试工具经过增强,并得到了社区的强力支持。 由于这些框架已成为行业标准,因此我们不再使用编码的 UI 测试进行 UI 驱动的自动功能测试。 Visual Studio 2019 将是具有编码的 UI 测试功能的最后一个 Visual Studio 版本。 建议使用 Selenium 来测试 Web 应用程序,使用 Appium 和 WinAppDriver 来测试桌面和 UWP 应用。
  • Visual Studio 2019 将是具有负载测试功能的最后一个 Visual Studio 版本。 对于需要负载测试工具的客户,建议使用备用负载测试工具,如 Apache JMeter、Akamai CloudTest 和 Blazemeter。
  • 在 Visual Studio 2019 中,删除了一些以前标记为公开但从未正式记录过的测试窗口 API。 它们在 Visual Studio 2017 中被标记为弃用,提前通告扩展维护人员。 据我们所知,很少有扩展依赖这些 API。 这些 API 包括 IGroupByProvider、IGroupByProvider、KeyComparer、ISearchFilter、ISearchFilterToken、ISearchToken 和 SearchFilterTokenType。 如果此更改影响你的扩展,请通过在开发者社区上提交问题告诉我们。

Visual Studio Kubernetes 工具

Visual Studio Kubernetes 工具以前作为 Visual Studio 2017 的单独扩展提供,现已集成到 Visual Studio 2019 的 Azure 开发工作负荷中。

将 Kubernetes 支持添加到新项目中

要将 Kubernetes 支持添加到新项目中,请打开 Visual Studio 并选择“创建新项目”选项。 在“创建新项目”窗口中,搜索 Kubernetes 并选择“适用于 Kubernetes 的容器应用程序”项目模板。

创建适用于 Kubernetes 的容器应用程序

单击“下一步”,然后输入项目名称、位置和解决方案名称。 然后单击“创建” 。 选择要用于该项目的 ASP.NET Core 应用程序模板,然后单击“确定”。 Visual Studio 将自动创建 Dockerfile 和 Helm 图表,可用于生成新的应用程序并将其部署到 Kubernetes 群集。 可根据需要修改这些项目。

将 Kubernetes 支持添加到现有项目

此外,还可以向现有 ASP.NET Core 应用程序添加针对 Kubernetes 的支持。 为此,请在 Visual Studio 2019 中打开项目。 在解决方案资源管理器中,右键单击项目,指向“添加”,然后单击“容器业务流程协调程序支持”。

添加容器业务流程协调程序支持

在“添加容器业务流程协调程序支持”对话框中,选择“Kubernetes/Helm”并单击“确定”。 Visual Studio 将自动创建 Dockerfile 和 Helm 图表(在名为 charts 的文件夹中),可用于生成应用程序并将其部署到 Kubernetes 群集。 如果已存在这些项目中的任何一个项目,不会将其覆盖。 可根据需要修改这些项目。

创建可公开访问的终结点

向新项目或现有项目添加 Kubernetes 支持时,Visual Studio 会询问是否要为应用程序创建可公开访问的终结点。

可公开访问的终结点提示

如果单击“是”,Visual Studio 将为应用程序配置 Helm 图表,以便在将应用程序部署到 Kubernetes 群集时创建 Kubernetes Ingress 对象。 通过修改 Helm 图表可随时更改此选项。

在 Azure Kubernetes 服务中调试应用程序

将 Kubernetes 支持添加到新项目或现有项目后,可使用 Azure Dev Spaces 功能在活动的 Azure Kubernetes 服务 (AKS) 群集中轻松生成、运行和调试应用程序。 这非常有助于在实际 Kubernetes 群集的上下文中测试项目或调试属于超大型应用程序的服务,而不必在本地复制整个应用程序。 Azure Dev Spaces 还包含可以使开发团队共享 AKS 群集的功能。 有关 Azure Dev Spaces 的详细信息,请参阅 Azure Dev Spaces 文档。 要开始使用此服务,请确保在 Visual Studio 中选择 Azure Dev Spaces 作为调试启动目标。

选择 Azure Dev Spaces 作为调试启动目标

首次在 Dev Spaces 中启动项目之前,请配置要使用的 Azure 订阅和 AKS 群集。 此外,请选择要运行该项目的空间。

配置 Azure Dev Spaces

通常情况下,团队在默认空间运行整个应用程序的最新稳定版本。 然后,在默认空间的子空间运行正在处理的服务版本。 现在没有必要在子空间运行其他服务;Dev Spaces 会自动将来自服务的调用路由到在默认空间运行的服务的稳定版本。 有关如何进行设置的详细信息,请参阅 Azure Dev Spaces 文档中的团队开发教程。 选择正确的订阅、群集和空间后,单击“确定”才能继续进行 Dev Spaces 配置。 如果所选的群集还没有关联的 Dev Spaces 控制器,请在以下对话框中单击“确定”,自动创建一个。

启用 Dev Spaces 对话框

控制器的创建需要 2 分钟左右。 单击 Visual Studio 窗口左下角的“后台任务”按钮可查看其状态。

通过“后台任务”按钮显示的 Azure Dev Spaces 控制器创建状态

准备好 Dev Spaces 控制器后,按 F5 或单击工具栏上的 Azure Dev Spaces 调试按钮即可在 AKS 中调试项目。

Azure Dev Spaces 调试按钮

Dev Spaces 会将代码同步到 Azure、生成包含这些代码的容器映像,然后使用项目中定义的 Helm 图表将其部署到 AKS 群集。 Visual Studio 将打开与群集中运行的服务建立的远程调试连接,这样便可以像调试本地运行的服务一样与其进行交互。

使用 Xamarin 进行移动开发

此版本改进了工作负载大小以及 Android 生成性能和可靠性,并提高了 Xamarin.Android 和 Xamarin.Forms 的生产力。

  • Xamarin 工作负载现在仅 7.69GB,比 Visual Studio 2017 15.9 版减少了 2 倍,比 15.7 版减少了 3 倍。
  • IntelliCode 扩展现在支持 Xamarin.Forms XAML。

“文件”>“新建项目”

对性能进行了改进,旨在缩短新建 Xamarin 项目所需的时间,便于更快地开始生成应用。 现在还将模板使用的 NuGet 包加入工作负荷安装项中,以缩短包还原时间(尤其是在低带宽或脱机情况下)。 在某些情况下,这些改进可使新 Xamarin 项目完全加载和还原的时间减少 50% 左右。

在 Visual Studio 15.9 版(左)和 Visual Studio 2019(右)中创建新的 Xamarin 项目

生成进度指示器

现可在生成项目时查看更详细的生成进度信息。 在生成期间单击左下角的“后台任务”图标,将显示正在运行的当前生成目标。 这有助于确定生成(目标需要很长时间才能完成的情况)是否仍在运行。

Xamarin 生成进度指示器

Xamarin.Forms 预览器的基本预览模式

不再需要为 Xamarin.Forms XAML 预览器生成项目以显示代码的预览! 如果 XAML 文件中有自定义控件,则可能需要生成项目以预览这些控件,或者将这些控件选择加入设计时渲染。

Xamarin.Forms 预览器设备下拉列表

你现在可以在不同的 Android 和 iOS 设备之间切换,以使用新设备下拉菜单预览 Xamarin.Forms XAML。

Xamarin.Forms 设备下拉列表

Xamarin.Forms 属性面板

现在可以在属性面板中编辑 Xamarin.Forms 控件、单元格和布局的最常用属性,并查看 XAML 中立即反映的这些更改。

Xamarin.Forms 属性面板

Xamarin.Forms Shell 模板

我们更新了 Xamarin.Forms 模板以使用最新的 Xamarin.Forms 版本,并为 Xamarin.Forms Shell 应用添加了新的模板选项。 Shell 旨在简化应用,同时提高开发人员的工作效率,专注于渲染速度和内存占用率。 此模板提供适用于 Android 和 iOS 的引导 Shell 应用。

Android 生成性能和可靠性

在 Visual Studio 2017 版本 15.9 和 Visual Studio for Mac 7.7 中,我们进行了初始生成性能和生成准确性改进。 在 Visual Studio 2019 和 Visual Studio for Mac 7.8 中,我们加快了生成和部署速度。

Android 生成速度现在比拿一杯咖啡的速度还快

  • 现在可使用 Android 的下一代打包工具。 要启用这些功能,请在项目的 .csproj 中添加 MSBuild 标志:

    • aapt2  将 Android 打包文件分为两个步骤:编译和链接。 这可以提高增量生成的性能并提供早期错误报告。 例如,如果单个文件中有更改,则只需重新编译该文件。 <AndroidUseAapt2>True</AndroidUseAapt2>
  • 通过在项目中启用此工具,可以在生成时和运行时增强性能。 有关这些属性的更多详细信息,请参阅有关 Xamarin.Android 中的生成过程的文档。

Android Emulator 改进

在 Visual Studio 2019 中,创建 Android 仿真器图像更加轻松。 我们还继续与 Windows 团队合作,参与 Windows 10 版本 1809 的 2018 年 10 月更新,以提高在 Hyper-V 上运行时 Android 仿真器的性能。

  • 新用户只需按下运行图标即可创建第一张图像。
  • 默认情况下,我们的仿真器采集体验自动确定用户设置的最佳配置,并利用硬件加速(使用 Intel HAXM 或 Hyper-V)和快速启动。
  • 如果要创建其他图像,可以从下拉列表中选择“创建 Android 仿真器”,打开 Android Device Manager。

使用 Xamarin.Android 中的生成改进缩短生成时间

我们发布了一组初始生成性能改进。 到目前为止,与之前的版本相比,Xamarin.Android 9.1.1+ 提供显著的生成性能改进。 查看 Xamarin.Android 15.9 和16.0 生成性能比较,了解详细信息。

适用于 Xamarin.Android 的增强快速部署

到目前为止,在未对应用中打包的任何资产、资源、共享的本机库或继承自 Java.Lang.Object 的用户定义的类进行任何更改的情况下,快速部署会跳过重新生成或重新部署 Android 包(.apk 文件)的步骤,从而缩短了增量部署时间。 增强的快速部署扩展了快速部署支持,现可应用于共享的本机库和继承自 Java.Lang.Object 的类。 使用上述增强功能的快速部署功能,只需在少数情况下(例如,当 AndroidManifest.xml 文件因添加新的 Android.App.Application 或 Activity 子类而发生更改时)生成新的 .apk 文件。 当前预览版默认不启用这些增强功能。 要启用它们,请在 .csproj 文件中将 $(AndroidFastDeploymentType) MSBuild 属性设置为 Assemblies:Dexes

复制

<PropertyGroup> <AndroidFastDeploymentType>Assemblies:Dexes</AndroidFastDeploymentType>
</PropertyGroup>

Xamarin.Android 中的新一代 Dex Compiler (d8) 和 Code Shrinker (r8) 支持

Xamarin.Android 现支持最新的 Android dex 编译器 (d8) 和 Code Shrinker (r8)。 要启用这些功能,请在 .csproj 文件中,分别将 $(AndroidDexTool) 和 $(AndroidLinkTool) MSBuild 属性设置为 d8 和 r8

  • d8 是新一代 dex 编译器,运行速度更快,生成的 .dex 文件更小,运行时性能更好。

复制

<PropertyGroup> <AndroidDexTool>d8</AndroidDexTool>
</PropertyGroup>
  • r8 是一种实现收缩和缩小的新工具,可将 Java 字节代码转换为优化的 dex 代码,取代了对 ProGuard 的需求。

复制

<PropertyGroup> <AndroidLinkTool>r8</AndroidLinkTool>
</PropertyGroup>

有关 d8 和 r8 的详细信息,请参阅文档。

Xamarin.Android Designer 增强功能

我们对拆分视图中的交互提供了大量有助于提升工作效率的增强功能强。

  • 直接从工具箱拖放到源编辑器,帮助快速构建 Android 布局。

  • 直接从源编辑器中的 XML 定义范围中选择元素。 我们通过将插入点位置与相应的 Android 视图同步来实现此功能,这样即可直接从编辑器快速访问属性面板中的元素属性。

  • 对 XML 代码使用内联颜色预览,以便查看控件中使用的颜色。

  • 使用快速信息功能,将鼠标悬停在某个值上以查找更多相关信息,例如该值的定义位置或颜色的十六进制值。

操作中的快速信息

改进了 Xamarin.Android Designer,同时还提供对约束布局的初始支持

我们已开始努力改进 Android Designer 的启动速度。 作为此项工作的一部分,我们还改进了设计器在加载时提供的消息传递功能。

除了这些改进之外,Android Designer 现在本身支持 Android Pie (9.0) 并为 ConstraintLayout 属性提供自动完成功能。

使用 Xamarin.Android Designer 获得更出色的 XML IntelliSense 和注释优化

使用 IntelliSense 将小组件添加到布局时,现提供完整代码片段,以便从一开始就提供所需的属性。 我们为 Android XML 布局添加了智能注释和取消注释功能。

使用“转到定义”功能来提高工作效率,并在 Android 资源文件和 AndroidManifest.xml 中使用 XML IntelliSense

现可在资源 URL 上通过“Ctrl +单击”,导航到定义它们的文件或行。

除了布局(颜色、字符串、可绘制资源、Android 清单等)之外,现支持对其他 Android XML 文件应用 IntelliSense/自动完成功能。

通用 Windows 平台

  • IntelliCode 扩展现在支持 XAML。
  • 为了降低 Visual Studio 设置的复杂性并减小其大小,已从 Visual Studio 安装中删除了 Windows Phone 仿真器。 现在需要手动下载该仿真器。
  • 已删除 Windows 10 Fall Creators Update(内部版本 16299)之前面向 Windows 10 SDK 的 UWP 应用 XAML 设计时工具。 要使用 XAML 设计器 XAML 编辑器,请将应用程序的目标重新设置为 Windows 10 版本 1709 或更高版本。
  • 不再支持使用 project.json 定义 NuGet 依赖项的 UWP 测试项目。 必须升级项目才能使用新的 PackageReference 格式。
  • Visual Studio 2019 不再支持 UWP JavaScript 应用。 无法创建或打开 JavaScript UWP 项目(扩展名为 jsproj 的文件)。 有关详细信息,请参与有关创建在 Windows 上运行良好的渐进式 Web 应用 (PWA) 的文档。
  • 你可以继续像以前一样附加到 JavaScript UWP 应用,但 Visual Studio 2019 中不再提供 JavaScript 分析工具(网络、CPU 和内存探查器)。

Office 工具模板更新

在 Visual Studio 2019 中,我们对 Office、SharePoint 和 VSTO 模板进行了一些更改。

  • Visual Studio 2017 15.9 中添加的 SharePoint 2019 模板也可在 Visual Studio 2019 中使用。
  • 我们已删除对 SharePoint 顺序工作流或状态机工作流的支持。 虽然无法在 Visual Studio 2019 中创建或打开这些工作流,但可以继续在以前的 Visual Studio 版本中编辑它们。
  • Office 2010 模板将不再可用。 但是,仍可以在 Visual Studio 2019 中打开现有 Office 2010 项目。
  • 已重命名 Office 2013 和 2016 模板,以反映它们支持 Office 2013 及更高版本。

团队资源管理器和 Azure DevOps

我们发布以开发人员为中心的简化型新体验,用于将团队资源管理器连接到 Azure DevOps 项目。

  • 根据分配给你的工作项、你正在关注的工作项、你在讨论中提到的工作项以及基于你的活动的工作项筛选和透视你的视图,从而关注相关工作项。

    • 在每个视图中,可以创建内联工作项、执行简单的内联编辑、将工作项标记为完成,以及将工作项关联到挂起的更改。
  • 从工作项创建本地分支,该工作项可自动将工作项与对该本地分支进行的更改关联。 这是默认体验。 如果要切换到旧版体验,可以在 Visual Studio 中设置工作项体验。 请注意,此新体验仅适用于 Git 存储库。TFVC 存储库的新体验将在以下更新中提供。

    Azure DevOps 工作项中心

  • 在挂起的更改提交消息中执行 #mentions 时搜索工作项。 有关更多详细信息,请参阅使用“工作项”查看和添加工作项页。

    Azure DevOps #mentions

  • 由于在 Azure DevOps 中的采用率较低,已从 Visual Studio 2019 的 Team Foundation Server Office 集成 2019 插件中删除对 Microsoft Project 的支持。 现在需要将工作项导出到 Excel 并手动将它们粘贴到项目中。

  • 已从 Visual Studio 2019 的 Team Foundation Server Office 集成 2019 插件中删除对 PowerPoint 的支持。 但是,用户仍然可以在 PowerPoint 中创建情节提要,并将它们手动链接到 Azure DevOps 中的工作项。

Application Insights 和 HockeyApp

  • Visual Studio 2019 中已删除 Application Insights 趋势窗口,改用功能更丰富的替代方案。 相反,可以使用 Visual Studio 中的 Application Insights 搜索窗口或 Azure 门户的 Application Insights 中一组功能丰富的诊断工具。
  • 已删除用于添加 HockeyApp SDK 和创建新 beta 发行版的向导。 建议使用 HockeyApp 的后续版本 Visual Studio App Center。用户仍然可以正常使用 HockeyApp,除非 Visual Studio 中没有这些快捷方式。 有关 HockeyApp 的详细信息信息,请查看我们的支持页面。

 Visual Studio 2019 RC 中已修复的问题

最近更新时间:2019 年 4 月 26 日

  • 值不能为 NULL。参数名称:向 TFS 签入代码时 pUnk。
  • 基于 xml 的文件(如 csproj)中添加了不必要的“子类型设计器”。
  • TLS 1.0:请求已中止:无法创建 SSL/TLS 安全通道。
  • 解决方案资源管理器:触屏板手势滑动太过敏感。
  • [MSConnect 1173006] 文件关闭时,任务列表在筛选器设置为“整个解决方案”的情况下不显示任务/待办事项。
  • Xamarin.iOS 无法为图像视图选择图像资产。
  • 灾难性错误 C1001:编译器中发生内部错误。
  • Visual Studio 2019 - EF6 edmx文件无法保存-VS 2019 预览版 1 - 无法保存 EF6 edmx 文件。
  • [WebKit] 未定义的类不允许作为编译器内部类型特征“__is_assignable”(回归)的参数。
  • Visaul Studio 2019: nuget 包管理器对比度不佳。
  • 团队资源管理器 - 更改内容:面板未调整到团队资源管理器窗口。
  • Visual Studio 2017 SQL Server 对象资源管理器服务器列表不会保存。
  • linux-x64 模式下的智能感知问题。
  • 索引已超出范围。必须为非负值并小于集合大小。参数名称:索引 。
  • “Visual Studio 2017 撤消”无法正常运行/停止运行(再次报告!!!!).
  • IntelliSense 不适用于在 WSL 下创建的文件。
  • IntelliSense 错误:C++ 11 静态 constexpr 成员初始化导致“成员可能未初始化”。
  • 切换进/出调试时,VS 不会恢复窗口位置。
  • 每次启动 VS2019 Preview 2.2 时,都会重新加载第三方工具箱项目。
  • 更新到 VS2019 预览版本 3 后,“设置为启动项目”会导致 IDE 崩溃 。
  • Visual Studio 2019 构建 Visual Studio 2017 C++ 项目失败。
  • 修复了工具箱刷新问题。
  • 工具箱控件使得 vssettings 文件过大。
  • SSDT:对在执行新的数据比较函数时登录失败的错误修复。
  • SSDT:对在执行架构比较时“源代码不可用”错误的修复。
  • SSDT:对在执行架构比较时“生成脚本”无法生成脚本的修复。
  • 发现文件“找到下一个匹配项”UI 不正常工作。
  • 发现文件持续默认为当前文件。
  • 快速引用会冻结 VS 2019 RC。
  • PackageId:MsSqlCmdLnUtils;PackageAction:Install;ReturnCode:1603;。
  • 错误列表的范围为“当前文档”,因此不显示错误。
  • 不能使用对 PropertyInfo.Name 值使用条件断点。
  • 在文件末尾分析宏时,Visual Studio 崩溃。
  • 在 Visual Studio 2019 中搜索时速度缓慢。
  • 启动调试时 Visual Studio 挂起。
  • Visual Studio 2019 RC 中不支持 vdproj。
  • Visual Studio 安装程序欢迎图像包含冒犯性的中文元素。
  • Visual Studio 2019 RC 重要扩展兼容性中已删除 VSIX 扩展先决条件。
  • 从头开始创建项目”屏幕忽略了所选的项目文件夹。
  • 在使用项目菜单或选择“管理配置”下拉菜单时不显示“cpp 属性为”对话框。
  • Visual Studio 2019 生成工具 - 开发人员提示标题显示“Visual Studio 2017 开发人员命令提示”。
  • 反馈工具的相关德语翻译:帮助 > 反馈 > 报告问题。
  • 自动完成功能,如果双击候选项,会丢失输入焦点,需要单机编辑器才能继续输入-AutoComplete function, if you double-click the candidate, will lose the input focus, need a stand-alone editor to continue to enter。
  • 在多个监视器配置中,上下文菜单有时位于错误的监视器上。
  • Visual Studio 2019 与 QQ 拼音冲突。
  • 不能拖动已最大化的 Visual Studio 窗口。
  • Access violation C++ /CLI 15.9.5 ISO C++ Latest Draft Standard since 15.9.5(遵循 C++ /CLI 15.9.5 ISO C++ 最新草案标准(从 15.9.5 版本开始)时出现访问冲突)。
  • 即使 IDE 有响应(“正在准备解决方案”、“正在创建项目”和“编辑并继续”等),模式进度对话框仍永久打开。
  • PackageId:OpenJDKV1;PackageAction:Uninstall;ReturnCode:0;。
  • Visual Studio 2019 工具箱始终显示“正在初始化”。
  • Razor 文件 (.cshtml) 中的 Intellisenseis 无法正常工作。
  • SSDT 架构比较不会突出显示文件中的差异。
  • 打开 Razor cshtml 文件时 Visual Studio 出现异常。
  • 无法初始化扩展。
  • Asp Core:创建新视图时显示错误。
  • VS 2019 RC -- 无法创建 Winforms (.Net Core) -- 多个错误。
  • 分支切换后不加载项目引用。
  • 基架错误:没有支持此项的基架。
  • 加载配置仅在首次安装完成之前起作用。
  • 使用“放大文本”时,下拉项目类型 -- 文本被部分隐藏。
  • 错误的本地化内容。
  • 在 Visual Studio 2019 RC 中,窗体设计器中的属性窗口显示不带拖动手柄的垂直滚动条,且在 4K 显示屏上自动缩放。
  • Razor 自动完成在你按 Tab/Enter 之后才会工作并使用 html。
  • 在 Visual Studio 2019 RC.1 中按顺序安装多个扩展时,VSIXInstaller.exe 随即崩溃。
  • 移动 } 会导致 Visual Studio 崩溃。
  • Visual Studio 2019 预览版 3 和预览版 4 中已禁用 WPF 控件的 Telerik UI。
  • 未处理的 System.OperationCanceledException。
  • 使用第三方 IME(QQ 输入法、Google IME)时,Visual Studio 2019 RC 在启动时出现故障。
  • 如果关闭未取消停靠的窗口,Visual Studio 2019 预览版 4 将出现故障。
  • IntelliSense 错误:C++ 11 静态 constexpr 成员初始化导致“成员可能未初始化”。
  • 主页“从列表中删除”停止工作。
  • $(VCIDEInstallDir) 为无效路径。Microsoft.Cpp.Common.props 中缺少反斜杠。
  • 打开解决方案筛选器时,Visual Studio 2019 预览版 2.0+ 出现故障。
  • 管理扩展工具栏则会引发异常。
  • 针对 LLVM/clang-cl 的 CMake 配置编译器测试失败
  • SSDT:为提高多个项目的加载解决方案的性能而进行的修复。
  • SSDT:对以下情况的修复:在执行数据库和项目之间执行架构比较时并不总是能删除 SQL 文件,而是随后执行删除表的操作。
  • SSDT:为改善旁白功能而进行的辅助功能修复。
  • SSDT:用新的 Microsoft ODBC Driver for SQL Server 替换了旧的 sqlncli 驱动程序。
  • 修复了多个 C# 和 Visual Basic 项目重载时速度缓慢的问题。
  • 存在 IntelliSense 时,如果用户键入 Shift + Enter,则完成活动选择并插入一个新行。
  • 修复了编辑器提示工具和灯泡不正确呈现的 PMA 问题。
  • 现显示有关因扩展造成的崩溃的通知。
  • 保护了有关 Visual Studio 性能的通知,使其免遭篡改。
  • 修复了在跨显示项拖动时工具栏呈现方面的问题。
  • 修复了在启用按监视器感知的情况下运行时工具选项呈现方面的问题。
  • 已弃用所有 DpiHelper 类(扩展性)。
  • 修复了初始屏幕缩放的问题,使其与主要显示屏缩放因子更好地匹配。
  • 修复了设置导入中警告/错误有时报告不当的问题。
  • 修复了工具选项报告的软件呈现方面的问题(无论呈现层如何)。
  • 修复了标题栏区域中不显示打开的文件夹的名称这一问题。
  • 修复了在启用了按监视器感知的情况下“在文件中查找”定位方面的问题。
  • 修复了在启用了按监视器感知的情况下填充装饰器呈现方面的问题。
  • 现可在 Azure VM 上运行的 ASP.NET 应用中通过快照调试器使用“按时间顺序查看调试”功能。 请注意,此功能发布时可能不适用于部分 Azure 版本。
  • 我们已更新 Visual Studio Tools for Kubernetes 中的 Dockerfile 基架以使用 Microsoft 容器注册表,而不是使用 Docker 中心。
  • 已修复 Visual Studio Tools for Kubernetes 中修改 Dockerfile.develop 不会使服务重新部署的问题。
  • 已修复 Visual Studio Tools for Kubernetes 中的问题:Azure Dev Spaces 项目中的服务无法启动。
  • 已修复 Visual Studio Tools for Kubernetes 中的问题:Azure Dev Spaces 项目中的服务在 Visual Studio 停止调试后停止运行。
  • 已修复 Visual Studio Tools for Kubernetes 中的问题:在 Azure Dev Spaces 对话框中选择帐户时,有时会显示空引用错误对话框。
  • 已修复 Visual Studio Tools for Kubernetes 中的问题:在添加 Kubernetes 业务流程支持时,显示群集选择对话框。
  • 固定了运行按监视器感知时“导入和导出设置”向导的渲染
  • 固定了运行按监视器感知时“新建项目”对话框的大小调整
  • 对“启动”窗口进行了一组视觉对象优化

Visual Studio 2019 发行说明相关推荐

  1. 【Tools】Visual Studio 2019下载和安装

    00. 目录 文章目录 00. 目录 01. Visual Studio 2019简介 02. Visual Studio 2019下载 03. Visual Studio 2019安装 04. Vi ...

  2. [翻译] Visual Studio 2019 RC版发布

    今天,我们将分享 Visual Studio 2019 的发布候选版(RC 版) - 这是在 4 月 2 日的虚拟发布活动上正式发布之前的最后步骤之一. 您可以在 visualstudio.com/d ...

  3. 微软宣布下一代集成开发环境 — Visual Studio 2019

    来自:开源中国 链接:https://www.oschina.net/news/96817/microsoft-announces-visual-studio-2019 在今天的一篇名为 What's ...

  4. 总结 Visual Studio 2019 发布以来 XAML 工具的改进

    不知不觉,Visual Studio 2019 已经出到 16.8 和 16.9 Preview 了.虽然每次更新都林林总总地一大堆新功能和改进,但关于 XAML 的内容总是,always,每次都只有 ...

  5. 【译】Visual Studio 2019 中 WPF UWP 的 XAML 开发工具新特性

    原文 | Dmitry 翻译 | 郑子铭 自Visual Studio 2019推出以来,我们为使用WPF或UWP桌面应用程序的XAML开发人员发布了许多新功能.在本周的 Visual Studio ...

  6. 微软发布 Visual Studio 2019年第二季度路线图

    微软近日发布了 Visual Studio 2019 年第二季度的路线图,路线图介绍了目前 VS 致力于在 VS 2019 发布的一些重要功能. 官方表示,Visual Studio 2019 将继续 ...

  7. Visual Studio 2019 v16.4 Preview 2 发布

    Visual Studio 2019 v16.4 的第二个预览版本发布了,更新内容如下: 将选项卡更改为垂直布局 垂直选项卡实现是深入改善文档管理体验的第一步,以下是这一项新功能外观的示例: 容器工具 ...

  8. Visual Studio 2019 for Mac 8.3 正式发布

    Visual Studio 2019 for Mac 8.3 正式发布了,以下是这个版本中关注的三个重要内容: Support for .NET Core 3, .NET Standard 2.1,  ...

  9. Visual Studio 2019 16.1 正式发布,更快更高效

    Visual Studio 2019 16.1 已正式发布,可以看到,新版本的启动速度有了显著的提升,还节省了不少的内存空间. 主要更新如下: 新增功能摘要 IDE 现已公开发布 Visual Stu ...

最新文章

  1. 编程之美:无差错二分查找
  2. 魂力真的存在那么该如何提高魂力呢
  3. 【剑指offer-Java版】24二叉搜索树后序遍历序列
  4. crontab用法 时间配置_Linux指定的时间运行自定义命令的两种方式
  5. linux检查系统硬件信息命令,Linux查看系统信息(硬件信息, 系统设置信息等) 命令 | Soo Smart!...
  6. Java Object有哪些公用方法?
  7. onvif开发之设备发现功能的实现
  8. linux登录交换机备份脚本,如何从Linux上备份和恢复许多Cisco路由器和交换机的配置?...
  9. defer 和 async 区别
  10. 电平转换电路_RS232电平和TTL电平有什么不同?如何转换?
  11. 资中筠 - 百度百科
  12. 深度学习与自然语言处理 主要概念一览
  13. Python3.6 word批量转换为txt提取
  14. The Django Book-----第一章:介绍Django
  15. 一些基于 D3.js 的图表库
  16. 小明打游戏(Java)
  17. 面试了 15 位来自 985/211 高校的 2020 届研究生,思考许久,熬夜赶出了这篇文章...
  18. One-Error多标签分类_多分类及多标签分类算法
  19. board oracle tarot_Thoth and the Tarot dpedtech(透特和塔罗牌dpedtech).pdf
  20. 163邮箱怎么申请注册?邮箱收费版怎么收费?163邮箱收费版优势?

热门文章

  1. 重装上阵两个人合体机器人_重装上阵多人机甲合体攻略 机甲怎么合体
  2. 破案了!不会讲笑话不会作诗的chatGPT!
  3. 行走的励志君——选择和努力哪个更重要
  4. 不用PyScript,网页端运行的Python编辑器
  5. 高斯-赛德尔迭代算法(C++实现)
  6. python编辑svg文件_使用Python创建SVG
  7. xv6进程切换-swtch函数
  8. 简单介绍红白机的发声系统以及其它音源 MMC
  9. Failed to introspect Class [org.springframework.cloud.gateway.config.GatewayAutoConfiguration$NettyC
  10. Golang正确停止Ticker