Visual Studio 2019新特性功能介绍

使用默认安装的 Visual Studio Live Share 与他人协作。 对 C ++、VB.NET 和 Razor 的附加语言支持为客户提供了解决方案视图和源代码管理差异共享。

Visual Studio 2019新特性功能介绍
  • 2019/02/06

 Visual Studio 2019 预览版发行说明


开发者社区 | 系统要求 | 兼容性 | 可分发代码 | 许可条款 | 博客 | 已知问题 |


 重要

此版本未发布,不适合在生产计算机上使用,也不适合用于创建生产代码。 有关如何安装和更新 Visual Studio 2019 的说明,请参阅文档将 Visual Studio 2019 更新到最新版本


Visual Studio 2019 中的新增功能

Visual Studio 2019 预览版发行

Visual Studio 2019 博客

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


Visual Studio 2019 预览版 1

发布时间:2018 年 12 月 4 日

Visual Studio 2019 预览版 1 新增功能摘要

IDE

  • 使用默认安装的 Visual Studio Live Share 与他人协作。 对 C ++、VB.NET 和 Razor 的附加语言支持为客户提供了解决方案视图和源代码管理差异共享。
  • 打开最近使用过的代码,或通过新的启动窗口从最常用的流之一(如克隆、打开或新建项目)入手。
  • 使用新列出的按受欢迎度排序的模板新建改进了搜索体验和筛选器的项目
  • 通过 shell 中一组新的可视更改,为代码提供更多垂直空间和新式外观。
  • 无论显示配置和/或缩放比例如何,都可以查看更清晰的 IDE,因为我们已改进对每监视器感知的支持。
  • 在 Visual Studio 中使用改进的搜索功能来搜索菜单、命令、选项和可安装组件。
  • 使用文档指示器快速了解代码文件的“运行状况”。 通过一键式代码清理从指示器中运行和配置。
  • 使用“选项”对话框中的新“预览功能”页轻松管理选择加入的预览功能
  • 默认情况下,MSBuild 和 Visual Studio 现在面向 .NET Framework 4.7.2。

性能

常规调试

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

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

编程语言

Web 技术

使用 Xamarin 进行移动开发

通用 Windows 平台 (UWP)

  • 程序包清单设计器对 Package.appxmanifest 文件中的 xml 更改提供原样不变的高保真度。 从设计器中进行修改时,将保留注释、间距、命名空间和任何其他文本更改。
  • Windows 应用程序打包项目现支持 .NET Core 项目生成 MSIX 包。
  • 使用包创建向导,可直接向 Microsoft Store 提交。

Visual Studio 2019 预览版 1 中已修复的常见问题

如果要查找已在 Visual Studio 2019 版本 16.0 预览版 1 中修复的客户报告的特定问题,请访问开发者社区


Visual Studio 2019 预览版 1 新增功能详细信息

启动窗口

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

  • 查看最近的项目和文件夹,只需一次单击即可将其打开。 还可通过上下文菜单固定和删除列表中的项目。
  • 使用任何公开的 git URL 克隆或签出代码,这也将自动在 IDE 中打开文件夹。
  • 浏览本地磁盘或网络共享中的项目、解决方案或任何包含代码的文件夹,然后在 IDE 中将其打开。
  • 创建新的项目或解决方案来提供代码基架,帮助入门。
  • 在列出的最热门模板中搜索已下载的工作负载,或筛选可用语言、平台和项目类型,以查找模板。 使用双页向导,一次专注于一个决策。
Start window

新启动窗口体验

Shell 和平台

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

Visual Studio 中增强的搜索功能

  • 通过“文档运行状况指示器”功能查看与当前打开的文件关联的运行状况信息。
  • 文档运行状况指示器可提供以下信息:
    • 有关悬停的错误、警告和建议摘要。
    • 分别通过“单击”或“Shift + 单击”导航到文件中的下一个问题或上一个问题。
    • 能够从右键单击菜单中配置或运行代码清理。
Document Health Indicator

文档运行状况指示器

  • 作为 C# 开发人员,可以使用“代码清理”快速清理一些最常见的编码建议。
  • 通过右键单击编辑器右下角的“文档运行状况指示器”运行或配置代码清理。
Document Health Indicator with Code Cleanup menu

文档运行状况指示器菜单

  • 通过配置“代码清理”选择要运行的一组修复程序。
Code Cleanup configuration dialog

配置代码清理

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

剪贴板循环上下文菜单

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

扩展性

  • 无法再从 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 更新中可能无法正常运行。 有关详细信息,请参阅我们有关如何通过更新扩展的自动加载行为来提高关键方案的响应能力的博客文章

性能

  • 现可在任务状态中心查看解决方案加载进度,以及解决方案加载完成后的警报。
  • 使用解决方案筛选器文件选择要在打开解决方案时加载的项目。
    • 通过卸载不希望自动打开的项目创建解决方案筛选器文件,右键单击解决方案,然后选择“另存为解决方案筛选器”。 然后,可使用筛选器文件打开解决方案供以后使用。
  • 在打开文件夹方案中按 Ctrl + T,可体验改进的生成资产发现和文件搜索。
  • Visual Studio 编辑器现在将限制辅助组件对键入性能的影响,改进了性能。 具体而言,它会在键入时自动取消任何长时间运行的非必要操作。
  • 可通过“工具”>“选项”>“文本编辑器”>“高级”来配置 Visual Studio 辅助组件限制行为:
Visual Studio Typing Latency Options

Visual Studio 键入延迟选项

  • 现可在“解决方案资源管理器”工具窗口中禁用从上一个会话还原项目层次结构状态。 我们实施了此更改,因为在解决方案打开时从上一个会话还原项目层次结构可能会延迟解决方案加载。
    • 在“工具”>“选项”>“项目和解决方案”>“常规”中切换此选项。
  • 现可禁用从上一个会话还原工具窗口的状态,而是始终在启动时加载解决方案资源管理器和团队资源管理器。 实施此更改是因为从上一个会话还原工具窗口可能会在启动时延迟解决方案加载。
    • 在“工具”>“选项”>“环境”>“启动”中切换此选项。

常规调试

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

在“监视”窗口中搜索

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

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

  • 现可使用针对 .NET Core 的自定义支持和数据集可视化工具支持。
  • 对于在 Windows 上运行的 C++ 应用程序,PDB 现可在单独的 64 位进程中加载。 此更改解决了在调试包含大量模块和 PDB 的应用程序时,由调试程序耗尽内存导致的一系列故障。

源代码管理

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

新拉取请求体验

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 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。

F# 和 F# 工具

对于 F#,我们专注于合并开源贡献,并使用 Visual Studio 2019 功能和基础结构稳定现有 F# 功能集。

  • 我们改进了使用类型提供程序在完成列表中生成大量所提供类型时的内存使用率 (#5599)。
  • 我们优化了要执行的结构和结构记录上的方法,以及类和基于类的记录上的方法 (#3057)。
  • 我们优化了 F# 代码中组合布尔逻辑的发出 IL(#635)。
  • 当用户定义的属性不从 Attribute 类继承时,用户可收到警告。
  • 项目文件中的 AssemblyInformationVersionAttribute 值现在支持任意值,以支持 SourceLink 等方案(#4822)。
  • Steffen Forkmann修复了使用活动模式的非法语法导致内部编译器错误的 bug (#5745)。
  • BooksBaum 修复了错误地将 Module 后缀添加到递归模块中的模块,以匹配唯一差异是通用参数的类型的 bug (#5794)。
  • Alan Ball 改进了类型参数与类型名称不相邻时对错误消息的改进 (#4183)。
  • Steffen Forkmann 和 Robert Jeppesen 增加了各种性能改进。
  • Teo Tsirpanis 在无效数字文字的错误消息中正确列出了 uint16 文字后缀 (#5712)。
  • 计算表达式的错误消息不再在消息中声明 async,而是 引用“计算表达式”,由 John Wostenberg 实现 (#5343)。
  • Bartoz Sypytkowski 修复了在 F# 交互中错误引用 .dll 时的错误消息 (#5416)。
  • 打开“智能”缩进后,在将 F# 代码粘贴到编辑器中时,现在将对该代码进行格式设置,以匹配基于当前光标位置的相应范围,由 Saul Rennison 实现 (#4702)。
  • 添加 open 语句代码修复现在默认为在文件顶部添加 open 语句。
  • 我们更改了 IntelliSense,使其不再显示未打开的命名空间中的符号。
  • 我们修复了用户代码中的 match! 使结构指南和后续作用域的代码大纲节点失效的 bug (#5456)。
  • 编辑器现在可通过可变值着色将 byrefoutref 和 ref 值正确地标记记录字段的颜色 (#5579)。
  • 我们修复了重命名重构无法识别符号名称中的 ' 字符的 bug (#5604)。

Python

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

  • 我们添加了一个新的“添加环境”对话框,简化了在项目中创建和添加虚拟环境和 conda 环境的体验。
  • Visual Studio 安装程序不再安装完整版本的 Anaconda,减小了 Visual Studio 安装大小,避免了升级期间出现错误。
    • 相反,建议手动安装 Anaconda 或 miniconda,并使用“添加环境”对话框将 Adaconda 环境添加到项目中。
  • 如果项目的根目录中存在 requirements.txt(虚拟环境)或 environment.yml(conda 环境),现在系统将自动提示用户添加环境。

JavaScript/TypeScript

旧版 JavaScript 语言服务不再可用。 以前,用户可以选择还原旧版 JavaScript 语言服务。 用户现在可以使用现成的新 JavaScript 语言服务。 新的语言服务基于 TypeScript 语言服务,由静态分析提供支持。 这可提供更好的工具,因此 JavaScript 代码可以从基于类型定义的更丰富的 IntelliSense 中受益。 新服务是轻量服务,比传统服务消耗更少的内存,其代码可以缩放,因而可为用户提供更好的性能。

.NET 和 ASP.NET 工具

  • 创建面向 .NET Core 3.0 的 ASP.NET、控制台和类库项目(需要使用“dotnet new”命令创建适用于 .NET Core 3.0 的 Windows 窗体或 WPF 项目)。
    • 通过下载和安装 .NET Core 3.0 SDK 来生成和调试面向 .NET Core 3.0 的项目。
  • 通过增加的兼容性,配合使用代码度量和 .NET Core 项目。
  • 通过“工具”>“选项”>“文本编辑器”>“C#”>“代码样式”,使用“从设置生成 .editorconfig 文件”按钮将编辑器设置导出到 Editorconfig 文件。
  • 使用 C# 和 Visual Basic 的新 Regex 分析器支持。 现可识别正则表达式,并在其上启用了语言功能。 将字符串传递给 Regex 构造函数时,或者字符串前面紧跟着包含字符串 language=regex 的注释时,可以识别正则表达式字符串。 此版本中包含的语言功能包括分类、大括号匹配、突出显示引用和诊断。
Regular expressions now have parser support

正则表达式分析器支持

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

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

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

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 调试程序。

性能向导

在 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。 如果此更改影响你的扩展,请通过在开发者社区上提交问题告诉我们。

使用 Xamarin 进行移动开发

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

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

Android 生成性能和可靠性

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

Android Build Performance

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

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

Xamarin Android 设计器增强功能

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

  • 直接从工具箱拖放到源编辑器,帮助快速构建 Android 布局。
Android Designer Toolbox to Source Editor
  • 直接从源编辑器中的 XML 定义范围中选择元素。 我们通过将插入点位置与相应的 Android 视图同步来实现此功能,这样即可直接从编辑器快速访问属性面板中的元素属性。
Android Designer Source Editor to Property Editor
  • 对 XML 代码使用内联颜色预览,以便查看控件中使用的颜色。
Android Designer Color Preview
  • 使用快速信息功能,将鼠标悬停在某个值上以查找更多相关信息,例如该值的定义位置或颜色的十六进制值。
Android Designer Quick Info

操作中的快速信息

Xamarin.Forms 属性面板

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

Xamarin.Forms Property Panel

Xamarin.Forms 属性面板

Android 仿真器改进

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

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

通用 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) 的文档

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 预览版 1.1

发布时间:2018 年 12 月 10 日

Visual Studio 2019 预览版 1.1 中已修复的问题


Visual Studio 2019 预览版 2

发布时间:2019 年 1 月 23 日

Visual Studio 2019 预览版 2 新增功能摘要

安装

IDE

  • 有关新建项目的改进:可基于标签进行搜索,并且可以轻松访问”最近使用的项目模板”列表。
  • 可直接从 Visual Studio 搜索创建新项,由于相关性获得改进,还可更快查找结果。
  • 通过更多拥有完整 PMA 功能的组件和许多可用性问题的修复,体验改进的每监视器感知 (PMA) 支持。
  • 借助新的通知体验,随时获取最新的重要信息,如 Visual Studio Live Share 请求。
  • 将一系列代码清理修复程序保存为配置文件,便于轻松选择要在代码清理期间运行的修复程序。
  • 触发新的 .NET 重构和代码修补程序
  • 使用“扩展和更新”对话框中的预览版、付费版和试用版标签查看扩展状态。
  • 由于此预览版中已重置默认值,请检查并配置要激活的预览功能。
  • 排除此版本中已标记为“弃用”的某些测试窗口 API,使扩展随时处于最新状态。
  • 与 Azure 应用服务相关的功能已从服务器资源管理器中删除;可改用 Cloud Explorer 中的等效功能。

性能

  • 了解“生成选项”的新快捷方式,并使用新的“全部生成”命令快速在 CMake 中执行“全部生成”操作。
  • 用于 CMake 项目中 C++ 文件的 IntelliSense 的 性能经过改进,提升了编码速度。
  • 加载更大型的 .NET Core 项目。
  • 可使用新的项目上下文菜单命令快速加载项目依赖项
  • 可在性能中心查看性能提示。

常规调试和诊断

  • 在 Visual Studio IDE 内即可使用自定义参数启动 Google Chrome 和调试 JavaScript 应用程序。
  • 可为性能探查器中的 CPU 和 DotNet 对象分配工具使用突出显示热路径

编程语言

C++

F#

  • 预览 F# 4.6 版和有关 F# 编译器和工具的小改进。

JavaScript/TypeScript

Python

  • 更轻松地使用 Python 环境,包括通过新 Python 环境选择器工具栏改进了的“打开文件夹”支持。

Web 技术

  • 获取 Azure DevOps 工作项体验的增强功能,包括有关工作项分配的内联支持和改进的 #mentions 体验。
  • 更轻松地使用项目文件,同时体验针对 .NET Core 工具的更出色的控制台应用。
  • 体验针对所有应用的发布配置文件摘要增强功能。 此外,当应用发布到 Azure 应用服务时,现可使用名为依赖项的新分区。

容器工具

使用 Xamarin 进行移动开发


Visual Studio 2019 预览版 2 中已解决的常见问题


Visual Studio 2019 预览版 2 新增功能详细信息

安装

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

产品更新选项

Shell 和平台

  • 现可按项目模板的语言、平台和项目类型标签,通过“新建项目”对话框中的搜索框搜索项目模板。 默认列表显示所有可用模板,而左侧窗格中显示最近使用的项目模板列表以便快速进行访问。
New Project Dialog

“新建项目”对话框

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

Visual Studio Code 清理配置文件

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

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

  • 查看预览功能节点(在“工具”>“选项”>“预览功能”中),可选择想要激活的预览功能。
    • 已重置此节点中的默认值。 因此,如果已关闭预览版 1 中的某项预览功能,且该预览功能在预览版 2 中仍然可用,在更新到预览版 2 时,该功能将重新打开。

测试工具

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

性能

  • 为文件夹和解决方案的“生成选项”添加了新的快捷方式:Ctrl + B。
  • 为 CMake 文件添加了“全部生成”命令:Ctrl + Shift + B。
  • 为 CMake 项目中的 C++ 文件改进了 IntelliSense 性能。
  • Visual Studio 现可加载更大型的 .NET Core 项目,而不会出现 OutOfMemory 异常。
  • 添加了一个命令,可用于将卸载的项目依赖项加载到项目和解决方案上下文菜单中。
  • 性能中心现会保留用于提高 Visual Studio 性能的通知提示,可通过“帮助”>“管理 Visual Studio 性能”访问。

突出显示热路径

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

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

.NET 效率

  • .NET 重构和代码修复程序:
    • 同步命名空间和文件夹名称
    • 拉取成员,使用对话框选项进行重构
    “拉取成员”对话框
    • 形参/实参的自动换行/缩进/对齐列表
    • 将匿名类型转换为元组
    • 将表达式/块主体用于 lambda
    • 反转条件表达式和逻辑运算
    • 转换为复合赋值
    • 自动关闭块注释“/”
    • 转换为复合赋值
    • 转换为 C# 8.0 索引和范围运算符
    • 支持对 UseCompound 修复程序使用 C# 8.0 中的 ??= 复合运算符
    • 修复程序隐式类型变量不能是常量
    • 自动修复程序用于在键入内插逐字字符串时用 $@" 替换 @$"
    • 完成 #nullable enable|disable
    • 用于未使用的表达式值和参数的修复程序
    • 使提取接口能保留在同一文件中的修复程序
  • 按读/写对引用进行分类。
  • 为 csharp_prefer_braces 添加 Editorconfig when_multiline 选项。
  • .NET Compiler Platform SDK(又名 Roslyn)提供了新的分类颜色。 将逐步推出新的默认颜色(类似于 Visual Studio Code 颜色)。可以在“工具”>“选项”>“环境”>“字体和颜色”中调整这些颜色,也可以在“环境”>“预览功能”中,通过取消选中“使用增强颜色”复选框来关闭这些颜色。 我们十分欢迎你提供有关此更改对你的工作流所产生的影响的反馈。
New Roslyn classification colors

新的 Roslyn 分类颜色

ASP.NET 项目中的 JavaScript 调试

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

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

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

C++

效率

  • 代码分析现可自动在后台运行。 键入时,警告在编辑器中显示为绿色波形曲线。
  • 模板栏现使用速览窗口用户界面而不是模式窗口,它支持嵌套模板,并且可以将任何默认参数预先填充到速览窗口中。
  • 通过相关行上的灯泡菜单可使用 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# 和 F# 工具

在此预览版中,我们将发布 F# 4.6 语言的预览版以及针对编译器和工具的一些改进。

F# 4.6 预览版

此版本包含 F# 4.6 语言的预览版:

此外,用于 F#4.6 的 F# 编译器包含以下 bug 修复和改进:

  • Victor Peter Rouven Müller 修复了错误:静态解析的类型参数无法调用隐藏继承成员的成员 (#5531)。
  • Avi Avni 修复了大型字符串分配中突出的源问题,特别是对于 IDE 工具 (#5922)。
  • 优化了在 F# 的字符串中对 + 的使用,以尽可能实现最少的 String.Concat 调用数 (#5560)。

F# 工具

  • 我们改进了 Roslyn 初始化 F# 语言服务的方式。 大型解决方案的类型着色总体上应该会显示地更快。
  • 我们修复了一个长期存在的 bug,即重命名 F# 脚本文件导致着色数据丢失 (#1944)。

F# 开源基础结构

我们已完成对 F# 和 F# 工具代码库的迁移,以便使用 .NET SDK。 对于不使用 Windows 的开发人员来说,这样可以简化贡献流程。

JavaScript/TypeScript

  • 我们已添加在 Node.js 项目的单元测试中启用 JavaScript 调试的相关支持。 这是 Node.js 客户一直以来所期待的功能。
  • 现在,JavaScript/TypeScript 语言服务将自动加载到安装了 TypeScript NuGet 包或 npm 包的项目中(NuGet包支持 TypeScript 3.2 及更高版本,npm 包支持 TypeScript 2.1 及更高版本)。
  • 在语言服务方面已实现性能改进,因为提高了语言服务的内存上限,它可以处理更大型的项目。
  • 默认情况下,错误列表中不再显示已关闭的 JavaScript/TypeScript 文件的诊断信息。

Python

  • 修改 Python 文件时,可使用新的 Python 环境工具栏。 利用新的工具栏,可在处理项目、使用“打开文件夹”工作区或其他项目中的松散 Python 文件时,在不同的 Python 解释器之间进行切换。 使用“打开文件夹”工作区时,所选环境用于调试,但尚不用于 IntelliSense 或 Python 交互窗口。
  • Miniconda 作为一个可选组件与 Python 工作负荷捆绑在一起,这样无需安装 Miniconda/Anaconda 即可创建 conda 环境。
  • Django 模板已更新,可支持 Django 2.x。
  • 函数返回值现可显示在 Python 调试程序中。
  • 现可创建 VS Live Share 会话并协作编写 Python 代码。 以前,仅在加入 Visual Studio Live Share 中的会话后才支持 Python。

团队资源管理器和 Azure DevOps

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

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

分配工作项和 #mention 改进

.NET 和 ASP.NET 工具

  • 所有应用程序的发布配置文件摘要页已进行了各种细微的 UX 改进(新的分区标头和操作/快捷方式)。
  • 将 ASP.NET 应用程序发布到 Azure 应用服务时,发布配置文件摘要页现具有一个名为“依赖项”的新分区。 这一新分区目前可用于将 Azure 存储和 Azure SQL 资源与应用服务实例相关联。 预计未来将通过此机制提供更多 Azure 服务。

容器工具

  • 添加了简化的面向容器化和调试的单一项目体验:
    • ASP.NET Web 应用程序 (.NET Framework)
    • 控制台应用程序 (.NET Core)
  • 添加了对 ASP.NET Core 应用程序(使用 Alpine 作为基础映像)调试的支持。
  • 添加了对最新 ASP.NET 和 .NET Core 映像的支持。

.NET Core 工具

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

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

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

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

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

Visual Studio Kubernetes 工具

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

将 Kubernetes 支持添加到新项目中

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

Creating a Container Application for Kubernetes

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

单击“下一步”,然后输入项目名称、位置和解决方案名称。 然后单击“创建” 。 选择要用于该项目的 ASP.NET Core 应用程序模板,然后单击“确定”。

Visual Studio 将自动创建 Dockerfile 和 Helm 图表,可用于生成新的应用程序并将其部署到 Kubernetes 群集。 可根据需要修改这些项目。

将 Kubernetes 支持添加到现有项目

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

Adding container orchestrator support

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

在“添加容器业务流程协调程序支持”对话框中,选择“Kubernetes/Helm”并单击“确定”。

Visual Studio 将自动创建 Dockerfile 和 Helm 图表(在名为 charts 的文件夹中),可用于生成应用程序并将其部署到 Kubernetes 群集。 如果已存在这些项目中的任何一个项目,不会将其覆盖。 可根据需要修改这些项目。

创建可公开访问的终结点

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

Publicly accessible endpoint prompt

可公开访问的终结点提示

如果单击“是”,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 作为调试启动目标。

Selecting Azure Dev Spaces as debug launch target

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

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

Configuring Azure Dev Spaces

配置 Azure Dev Spaces

通常情况下,团队在默认空间运行整个应用程序的最新稳定版本。 然后,在默认空间的子空间运行正在处理的服务版本。 现在没有必要在子空间运行其他服务;Dev Spaces 会自动将来自服务的调用路由到在默认空间运行的服务的稳定版本。 有关如何进行设置的详细信息,请参阅 Azure Dev Spaces 文档中的团队开发教程。

选择正确的订阅、群集和空间后,单击“确定”才能继续进行 Dev Spaces 配置。 如果所选的群集还没有关联的 Dev Spaces 控制器,请在以下对话框中单击“确定”,自动创建一个。

Enable Dev Spaces dialog

启用 Dev Spaces 对话框

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

Azure Dev Spaces controller creation status via Background Tasks

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

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

Azure Dev Spaces debug button

Azure Dev Spaces 调试按钮

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

使用 Xamarin 进行移动开发

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

在 Visual Studio 15.9 预览版 3 中,我们发布了一组初始生成性能改进

到目前为止,与之前的版本相比,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 Designer 的启动速度。 作为此项工作的一部分,我们还改进了设计器在加载时提供的消息传递功能。

Android Designer Output

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

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

使用 IntelliSense 将小组件添加到布局时,现提供完整代码片段,以便从一开始就提供所需的属性。

我们为 Android XML 布局添加了智能注释和取消注释功能。

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

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

Android Designer Go-To-Definition

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

Xamarin.Forms 4.0 Shell 模板

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

生成进度指示器

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

Xamarin build progress indicator

Xamarin 生成进度指示器

“文件”>“新建项目”

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

New Xamarin project comparison gif

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


Visual Studio 2019 预览版 2.1

发布时间:2019 年 1 月 31 日

Visual Studio 2019 预览版 2.1 中已修复的问题


Visual Studio 2019 预览版 2.2 

发布 2019 年 2 月 5 日

在 Visual Studio 2019 预览版 2.2 中修复的问题


已知问题

通过以下链接查看 Visual Studio 2019 中所有现有已知问题和可用解决方法。

Visual Studio 2019 Known Issues

反馈

Feedback Icon

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


博客

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

Developer Tools Blogs

Visual Studio 2019 发行说明历史记录

若要详细了解以往 Visual Studio 2017 版本的相关信息,请参阅 Visual Studio 2019 发行说明历史记录页。

原文: Making every developer more productive with Visual Studio 2019

今天,在 Microsoft Connect(); 2018 的主题演讲中,Scott Guthrie 宣布推出 Visual Studio 2019 Preview 1。这是 Visual Studio 下一个主要版本的首次预览。在本预览版中,我们专注于几个关键领域,例如使其更快地打开在 git 库中的项目、使用人工智能改进 IntelliSense(这个功能我们称之为 Visual Studio IntelliCode),以及通过集成 Live Share ,您可以更轻松地与团队成员进行协作。通过每一次预览版,我们将逐步添加功能,提高性能并改善用户体验,我们非常希望得到您的反馈。

有关新功能的快速概述,您可以继续阅读此博客,或者如果您想要观看视频,请查看我们的团队成员 Allison 对 Visual Studio 2019 的介绍。但在您观看之前,请先下载 Visual Studio 2019 Preview 1

使您能够专注于您的工作

马上,您会注意到 Visual Studio 2019 在启动时打开了一个新的启动窗口,这种体验更适合与今天的Git 库一起使用 – 无论是本地存储库还是 GitHub、Azure 库或其他地方的在线 Git 库。当然,您仍然可以打开现有项目、解决方案、创建新项目或解决方案。(Visual Studio 2019 for Mac 也即将推出)下周我们将在新的开始窗口体验中发布更详细的博客文章,也会涉及此次改造的一些研究。

Visual Studio 2019 启动窗口


Visual Studio 2019 for Mac 启动窗口

进入 IDE 后,您会注意到 Visual Studio 2019 的 UI 和 UX 发生了一些变化。Jamie Young 最近发布了一篇博文,其中详细介绍了这些变化,我们来回顾一下,它们包括一个新的产品图标、一个新鲜的蓝色主题、在 UI 上进行小的更改以创建更清晰的界面、以及更紧凑的标题和菜单栏 – 我们已经听到您的反馈,并正在努力进一步优化。

除了 Jamie 提到的增强功能之外,今天我们将在 Visual Studio 2019 中分享新的搜索体验,它取代了现有的“快速启动”框。您现在可以搜索设置、命令和安装选项。新的搜索体验也更加智能,因为它支持模糊字符串搜索,即使拼写错误也能帮助找到您要查找的内容。


Visual Studio 2019 中新的搜索体验

在编写代码时,Visual Studio 2019 可以让您更快地完成工作。我们首先关注此预览版中的代码可维护性和一致性体验。我们添加了新的重构功能 – 例如将 for 循环更改为 LINQ 查询,将元组转换为命名的结构 – 以便更容易的使代码保持良好状态。借助新的文档健康指示器和代码清理功能,您现在可以通过单击按钮轻松识别和修复警告和建议。


文档健康指示器和代码清理命令

常见的调试任务也变得更容易。您会看到单步调试的性能得到改善,从而实现更顺畅的调试体验。我们还为 Autos,Locals 和 Watch 窗口添加了搜索功能,帮助您跟踪对象和值。未来会有博客文章,深入讲解 Visual Studio 2019 中的调试器改进,包括新的针对托管代码功能的 Time Travel 调试器(即将发布)、更新的 Snapshot 调试器以定位 Azure Kubernetes 服务和 Virtual Machine Scale Sets(VMSS)、调试大型 C++ 项目时更好的性能; 多亏了 out-of-process 64-bit 调试器。


在 Watch 窗口中搜索

帮助您的团队一起工作

基于我们在 Visual Studio 2017 中开始的工作,我们正在改进 Visual Studio IntelliCode,我们的上下文感知和 AI 驱动的 IntelliSense,您可以在您自己的代码库上对其进行 AI 训练,并与您的团队分享结果。IntelliCode 减少了您需要的击键次数,因为完成列表优先考虑该 API 的最常见编码模式以及现有项目中代码的上下文。我们将在本周晚些时候发布关于IntelliCode 所有改进的博客文章,包括从代码中学习的更多细节,以及为 Visual Studio 2019 添加的 C++ 和 XAML 支持。


Visual Studio IntelliCode 使用了一个训练模型

今年早些时候,我们介绍了 Visual Studio Live Share,以帮助您使用 Visual Studio 或Visual Studio Code 与全球任何人进行实时协作。默认情况下,Visual Studio 2019 会安装 Live Share,因此您可以立即邀请您的队友加入您的会话以修复 bug 或帮助修改。您还会发现,现在启动一个会话会更容易,并且可以在右上角查看到参与的人员。我们还将在接下来的几天内深入介绍 Visual Studio Live Share 的改进,包括对其他项目、应用类型和语言的支持,访客的解决方案视图以及对更多协作方案的支持。


Visual Studio Live Share 集成在 Visual Studio 2019 中

最后,我们在 Visual Studio 2019 中引入了全新的 pull request(PR)体验,使您无需离开IDE 即可查看、运行甚至调试团队的 pull request。我们现在支持 Azure 库中的代码,但将很快支持 GitHub 并改善整体体验。马上开始,您可以从 Visual Studio Marketplace 下载 Pull Requests 扩展


Visual Studio 2019 中心的 pull request 体验

.NET Core 3 Preview 1

我们今天还发布了 .NET Core 3 Preview 1,Visual Studio 2019 将是支持为任何平台构建 .NET Core 3 应用程序的版本。当然,我们还将继续支持和改进跨平台的 C++ 开发,以及使用Xamarin 的 iOS 和 Android 的 .NET 移动开发。


Visual Studio 2019 中的 .NET Core 3.0 开发

帮助我们构建最好的 Visual Studio

我们非常感谢拥有这样一个活跃的社区,并且迫不及待地想听听您对 Visual Studio 2019 的看法。请通过使用报告问题工具告诉我们您遇到的任何问题,帮助我们将其打造成最佳的 Visual Studio。您还可以访问 Visual Studio 开发人员社区来跟踪您的问题,或者提出更好地建议,并从其他人那里寻找答案。

随着我们发布更多预览版,我们将在未来几个月内分享有关 Visual Studio 2019 的完整功能集和SKU lineup 的更多信息。 Visual Studio 2019 可以与 Visual Studio 2017 同时安装,或者如果您想在不安装它的情况下进行尝试,请查看 Azure 上的 Visual Studio 镜像

我还想花一点时间来感谢我们充满活力的扩展生态系统,它已经为 Visual Studio 2019 preview 1 提供了 400 多个扩展,并且每天都有更多扩展。您可以在 Visual Studio Marketplace 上找到这些扩展。

微软一直是一家以开发人员为核心的公司 – 我们感到受宠若惊的是,Visual Studio 家族的用户群已经超过了 1200 万。我们的目标是让您每一秒钟的编码都更有成效和充满愉快。请继续分享您对 Visual Studio 2019 预览版的反馈,以帮助指导产品的未来发展方向,使其成为您最喜爱的工具。谢谢!

作者:

喜欢围棋和编程。

 
发布于 分类 编程标签

发表评论

电子邮件地址不会被公开。