本文包含有关 Visual Studio 2017(版本 15.3)最新发布的信息。 单击此按钮下载。html
有关详细信息,请参阅安装指南。node
反馈
咱们期待你的宝贵意见和建议! 可经过安装程序或 Visual Studio IDE 中的报告问题选项报告问题。 图标位于右上角。 可在开发人员社区门户中跟踪本身的反馈。 若有任何建议,请经过 UserVoice 网站告知咱们。python
发布日期:2017 年 8 月 14 日 - Visual Studio 2017(版本 15.3)
此版本中的新增功能git
- 辅助功能的改进。
- Visual Studio IDE 改进。
- CMake 工具。
- Visual Studio 编辑器
- C++ 语言服务。
- Visual C++ 工具集和库。
- C# 7.1 语言支持。
- Xamarin。
- .NET Core 和 ASP.NET Core 改进。
- NuGet 改进。
- .NET Framework 4.7。
- 调试与诊断。
- Application Insights。
- Redgate 数据工具。
- Azure Function 工具。
- JavaScript 和 TypeScript。
- Node.js。
- 链接的服务中的 Microsoft Graph 提供程序。
- Python。
- R 工具。
此版本中已修复的主要问题
咱们专心聆听开发人员社区的需求。 此列表提供得票数最高且已在此版本中修复的问题。 安装 F# 后深色主题加载失败。
Visual Studio 安装程序更新致使无限循环。
最近项目的列表未正确显示。
没法向新的自定义配置文件添加名称。
将 DSL 扩展从 VS 2015 移动到 VS 2017 时出现运行时错误。
Try...catch 块引起“TextBuffer 编辑操做,但另外一个编辑正在进行中”错误消息。
Chrome 58 中不接受 Visual Studio 自签名证书。
因为“生成中的全部生成提交必须使用来自同一个项目集合的项目实例”,发布失败。
每次启动 VS 2017 时都会运行“扫描新的和更新的 MEF 组件”,减缓启动速度。
在本地调试 VS 2017 时页面加载速度慢。
若是在不使用管理员权限的状况下运行 VS Community 2017,会出现拒绝访问错误消息。
设置操做失败。
没法将最近项目从起始页上的最近列表中删除。
没法调试 T4 文本模板。
全部新的/现有 HTTPS 网站在 Chrome 中出现证书错误
程序集版本更改时不更新 MEF 缓存。
Editorconfig 支持将“charset = utf-8”解释为带签名的 UTF-8
RTM 忽略项目依赖项且生成失败。
单击文件选项卡时,Visual Studio 会冻结。
PerfWatson2.exe 阻止扩展安装超过 1 分钟。
Web 发布预览仅可上传文件的子集。
调试程序安装不正确。
版本 15.2 升级丢失窗口布局设置。
来自 HRESULT: 0xD00000F3 的 System.Runtime.InteropServices.COMException 异常。
C++ 自动完成
Enter
插入新行,而不是完成标识符。 发布预览不容许选择性发布文件。
SSDT 安装错误:进程没法访问文件“C:...IntelliTraceCollection.cab”,由于另外一进程正在使用它。
生成没法启动。
Intellisense:没法经过
Tab
操做自动完成。 Visual Studio 2017 在附加到进程期间崩溃。
PerfWatson2.exe 在关闭 VS2017 后会运行几分钟,阻止 VSIX/扩展安装程序。
Node.js 和 Python 安装失败。github
详细了解版本 15.3 中已解决的客户所报问题。web
此版本中的新增功能
辅助功能的改进
咱们解决了此版本中的 1700 多个辅助功能问题,使 Visual Studio 比以往任什么时候候都更容易访问。redis
-
现可访问“蓝(额外对比度)”主题(图 1),该主题对某些颜色进行了微调,使编码时想使用高一点的对比度的用户感到颜色对比更加温馨sql
(图 1)“蓝(额外对比度)”主题 -
现可借助 Visual Studio 编辑器,经过新的“显示行注释”命令集发现并在文本修饰之间导航。 可在编辑器上下文菜单(图2)中找到该新功能。 请参阅 Visual Studio 编辑器部分,了解详细信息。typescript
(图 2)显示行注释
Visual Studio IDE 的改进
- 在“帮助”菜单下添加了“键盘辅助功能”菜单命令。 这为得到有关辅助功能提示和技巧的联机文档提供了便利。
-
如今,诊断系统会经过“信息栏”通知用户可能涉及 Visual Studio 意外终止的扩展(图 3)。 “信息栏”提供有关终止的信息,并询问是否要禁用可疑扩展。shell
(图 3)信息栏通知 -
在打开文件夹方案中,能够经过专用 UI 选择所需的调试程序。
-
已中止在 Visual Studio 2017 的不一样并行安装之间共享某些设置(如工具窗口布局),方法是将“%userprofile%\Documents\Visual Studio 2017\Settings”中的“CurrentSettings.vssettings”文件位置更改成相似于“%localappdata%\Microsoft\VisualStudio\15.0_xxxxxxxx\Settings”的特定于安装的文件夹。
注意:在全新安装时可以使用特定于安装的新设置。 将现有 Visual Studio 2017 安装升级到最新更新时,其会使用现有共享位置。 若是如今已拥有 Visual Studio 2017 的并行安装,并决定升级且但愿使用特定于安装的新设置文件位置,请参阅如下步骤:1. 升级以后,使用“导入\导出”设置向导将全部现有设置导出到“%localappdata%\Microsoft\VisualStudio\15.0_xxxxxxxx”文件夹以外的某个位置。
- 打开已升级的 Visual Studio 安装的开发者命令提示符并在其中运行
devenv resetuserdata
。 - 启动 Visual Studio,并从导出的设置文件中导入保存的设置。
- 打开已升级的 Visual Studio 安装的开发者命令提示符并在其中运行
-
修复了致使 Visual Studio 在主窗口出现前挂起的“隐藏窗口”bug。
- 扩大了可点击目标区域,以便更轻松地消除通知提示。
.NET IDE 改进
- 添加了若干新重构和快速修补程序,例如“解决合并冲突”、“添加 null 检查”、“添加参数”等。 请查看 Visual Studio 中的重构、代码生成和快速操做页面,查看完整列表。
- 对 IntelliSense 中的变量名称提出了建议,有助于用户快速命名变量,例如
Person person
。 - “编辑并继续”如今支持 C# 7.0 功能(本地函数除外)。
- 针对 .NET Core,增长了对项目文件夹外的文件通配支持。
登陆和标识改进
- 修复了账户选取器控件,“从新输入凭据”运行更可靠。 (在某些状况下,账户选取器会在从新输入凭据时清除账户。 此修补程序应能解决此问题。)
起始页
- 扩大了“开始”页面 MRU“固定”的可点击目标区域,以便更轻松地将关注的项固定到 MRU 顶部。
轻量级解决方案加载
- 提升了生成速度和稳定性。
- 减小了加载的项目数。
- 咱们添加了一个新选项(图 4),该选项容许 Visual Studio 肯定什么最适合用户的解决方案。
- 咱们添加了文件搜索结果解决方案,搜索延迟项目,而不只仅是加载项目。
- 对此有一些限制:
- 搜索不会扩展到文件中,而且不包括渐进式结果,如类和方法。
- 属于项目的文件显示为简单列表。 若是文件属于一个文件夹,除了文件名,还会显示相对路径。
- 搜索视图中没有文件项的上下文菜单。
- 加载项目时,会刷新全部现有的搜索,以添加进度结果。
- 对此有一些限制:
- 如今,GoTo All 和 GoTo Files 在工做区中显示外部项中的内容。
- 咱们改进了使用 LSL 的项目中的 Batch 生成。
安装
- 如今,Visual Studio 安装程序支持级别小于 150% 的高 DPI 缩放。
vswhere.exe
可执行文件已更新为在默认状况下排除预览实例,而当命令行上包含--prerelease
时,包含预览实例。- CLI 能处理
--verify``--fix
和--clean
。--verify
会验证布局并通知用户缺失和无效的负载。--fix
会验证布局并从新下载缺失或无效的包。--clean
会删除已过期的包并容许用户将布局剪裁到特定的版本范围。
- 已移除了安装程序工具提示中的驱动器大小(图 5)。
打开文件夹和 CMake 工具
- 提升了文件夹和解决方案之间切换的稳定性。
- 打开文件夹扩展程序控件可将源控件图标添加到文件夹。 这样一来,用户可快速查看解决方案资源管理器中文件的源控件状态,该操做目前由 SVN 实现。
- Visual Studio 中的 CMake 体验已更新,现可以使用 CMake 3.8。
- 对于使用 MinGW 或 Cygwin 的 C++ 项目,改进了“打开文件夹”中的编辑、生成和调试支持。
- 添加了支持,以定义“CppProperties.json”和“CMakeSettings.json”中的全局和特定于配置的环境变量。 “launch.vs.json”中定义的调试配置和“tasks.vs.json”中的任务可使用这些环境变量。
- 加强了 Visual Studio 的 CMake 工具以提供对 CTest 集成的支持。
- 现可以使用 CMake 的 Ninja 生成器,以及经过 IntelliSense 轻松面向 64 位平台、生成、调试和编辑的功能。
Visual Studio 编辑器
- 修复了如下问题:若是其余工具提示处于活动状态,IntelliSense 会消失。
- 修复了添加大量错误时,难以进行手动滚动和选择的错误。
- 添加了“蓝色”主题的新变体,知足了但愿在 Visual Studio 编辑器中使用更高对比度的用户须要。 若是不但愿使用或不须要彻底高对比度模式,此主题可提供比常规“蓝色”主题更高的对比度。 能够经过“工具”->“选项”->“环境”->“通用”,尝试使用此主题。
- 若是使用屏幕阅读器,现可经过使用新的“显示行注释”命令在修饰之间导航。
- 若要激活,可在“编辑器”上下文菜单上选择“显示行注释”(
Ctrl+K
、Ctrl+M
)。 此时编辑器中会出现一个描述行上修饰的弹出窗口。 - 使用
Ctrl+K
、Ctrl+ Right/Left Arrow
,在行上的多个注释之间导航。 - 还可经过“显示结构”命令
Ctrl+K
、Ctrl+G
在代码中轻松查找上下文。 它会在插入点所在的弹出窗口中显示代码行的结构上下文,且可由屏幕阅读器读取。
- 若要激活,可在“编辑器”上下文菜单上选择“显示行注释”(
持续交付工具
已将这些功能从 CD4VS 扩展移至 Visual Studio:
- 为包含面向 Azure 应用服务的 ASP.NET 项目的解决方案,配置持续交付。
- 为包含面向 Azure 应用服务的 ASP.NET Core 项目的解决方案,配置持续交付。
容器开发工具
- 如今,Visual Studio 2017 版本 15.3 支持跨使用 Windows 容器的现有 .NET Framework 应用、使用 Windows 的 .NET Core 和 Linux 支持的容器开发范围。 最近的改进包括对运行 Nano 服务器的容器中的 .NET Core 应用程序的支持,以及对容器中 .NET Framework 应用程序的调试改进。
Service Fabric 工具
- 此版本提供新的有状态 ASP.NET Core 项目模板、对 Service Fabric 2.5 和 2.6 SDK(以及相应运行时)的支持以及若干 bug 修补程序。
C++ 语言服务
- IntelliSense 引擎改进
- C++ IntelliSense 支持与批编译器版本相匹配的新的 C++17 功能。
- 已将 C++ 编辑器中的上下文菜单选项添加到 Rescan 文件中,可在 IntelliSense 没法正常工做时使用此选项。
- 减小了运行 C++ 代码的“查找全部引用”或“调用层次结构”时的 CPU 使用。
- 咱们改进了 C++ IntelliSense 引擎整体体验。
- 项目和代码向导改进
- 咱们按照签名对话框样式从新编写了多个项目和代码向导。
- “添加类”如今直接启动“添加类向导”。 之前此处的其余全部项如今位于“添加”>“新建项”。
- Win32 项目如今位于“新建项目”对话框中的“Windows 桌面”类别下。
- Windows 控制台和桌面应用程序模板如今能够在不显示向导的状况下建立项目。 在相同的类别下有一个新的 Windows 桌面向导,显示和之前相同的选项。
- 实验性选项下的“启用更快的项目加载”选项已重命名为“启用项目缓存”并移至“VC++ 项目设置”下。 旧属性值不会传播到新选项。
Visual C++ 工具集和库
- Visual Studio 开发者命令提示符(和 Visual C++ 命令提示符)已添加对经过
-vcvars_ver=14.0
参数初始化面向 Visual C++ 2015 工具集 (v140) 的命令提示符环境的支持。 - Visual C++ Redist 文件目录已重命名为 Microsoft.VC141.,以经过工具集 (14.1x) 匹配版本控制。 在 VS 2017 RTM 中,这些目录被错误命名为 Microsoft.VC150.。
- Visual C++ 文件版本和目录 (VS 2017 15.3):
- VC++ 工具集文件版本:14.11.25506.0 或 19.11.25506.0
- VC++ 工具目录:VC\Tools\MSVC\14.11.25503(预览版中锁定目录位置)
- VC++ Redist 目录 [a]:VC\Redist\MSVC\14.11.25325(除 MFC 和 OneCore 以外的全部运行时)
- VC++ Redist 目录 [b]:VC\Redist\MSVC\14.11.25415(MFC 和 OneCore 运行时)
C# 7.1 语言支持
- 添加了使用 C# 7.1 语言功能的功能。
- C# 7.1 添加对异步 Main 方法、泛型模式匹配、“默认”文本和推断元组名称的支持。
- 在项目中使用 C# 7.1 功能时,灯泡图标会提示将项目语言版本升级到“C# 7.1”或“最新”。
- 请参阅 C# 语言功能状态页,了解完整详细信息。
.NET Core 和 ASP.NET Core 改进
- 现可经过单独的下载安装 .NET Core 2.0 SDK,以便在 Visual Studio 2017 版本 15.3 中启用 .NET Core 2.0 开发。 请参阅 .NET 博客帖子,了解详细信息。
- Visual Studio 现提供对多个 .NET Core SDK 的并行支持。 可试用 .NET Core SDK 最新的每日内部版本,同时使用 SDK 的最新公开发布版本进行开发。 有关详细信息,请查看 .NET 博客。
- 经过 Visual Basic 支持可在 Visual Basic 中建立 .NET Core 控制台应用程序,以及 .NET Core 和 .NET Standard 类库。
- 经过 .NET Framework 和 .NET Standard/Core 互操做可从 .NET Framework 项目中引用 .NET Core/.NET Standard 库,反之亦然。 无需手动添加互操做 NuGet 包 - Visual Studio 会自动执行此操做。
- 经过多个目标框架支持加强可为多个目标框架 (TFM) 生成项目,并使用“调试/运行”中的 TFM 选取器选取要运行的 TFM。
- 咱们添加了 Windows Nano 映像支持,将 ASP.NET Core 应用容器化为 Windows Nano 映像。 现可选择 Nano 做为容器平台。 能够在“文件”->“为 ASP.NET Core 项目新建项目”下执行此操做。 对于现有的项目,可使用“项目上下文菜单”进行添加。
- 本地 IIS 支持:现可以使用 Visual Studio 中的 IIS 进行开发和调试。
- .NET Framework 上的 ASP.NET Core - 在此版本中,若要建立面向完整 .NET Framework(仅 Windows) 的 ASP.NET Core 项目,使用 One ASP.NET 对话框上的下拉列表。
-
现可为 .NET Standard、.NET Core 和 ASP.NET Core 项目启用 Live Unit Testing 功能。
NuGet 改进
- 安装包或添加的项目到项目引用不兼容时,NuGet 如今会显示改进的警告和错误。
-
NuGet 如今容许用户禁止特定或全部警告,或者经过生成属性将其提高至错误。
.NET Framework 4.7
- 如今,Visual Studio 2017 版本 15.3 将 .NET Framework 4.7 开发工具提供给全部受支持的平台(其中包括 4.7 运行时)。 .NET Framework 4.7 提供多个新功能和改进,以及大量可靠性、稳定性、安全性和性能修复。 可在这些文章中找到有关 .NET 4.7 的更多详细信息:
- .NET Framework 4.7 RTM 博客。
- .NET Framework 中的新增功能。
- .NET Framework 4.7 发布更改备注。
- .NET Framework 4.7 的已知问题。
- .NET Framework 4.7 中的应用程序兼容性。
- .NET Framework API 差别。
调试和诊断
Visual Studio Team Services 符号服务器的调试程序支持
- 现可从 Visual Studio Team Services 符号服务器查询和下载符号(图 6)。 可使用“工具”->“选项”->“调试程序”->“符号”页,选择 Visual Studio Team Services 符号路径并将其添加到 Visual Studio 环境。 若要设置 Visual Studio Team Services 符号服务器,请遵循这些说明。
- 使用“开始调试”(
F5
) 或“附加到进程”(Ctrl+Alt+P
) 调试时,如今支持 SetThreadDescription API。 经过此 API 设置的线程名称如今出如今“线程窗口”和“调试位置”工具栏的“线程”下拉列表中。 尚不支持在转储调试时使用此功能。 - “输出窗口”如今显示调试时“窗口容器”中运行的应用程序的控制台输出。
- 添加了基于 Nano 服务器调试在“窗口容器”中运行的 .NET Core 应用的新支持。
指向并单击“设置下一语句”
- 如今,可在调试期间,在断点处中止时按住
Ctrl
键。 代码行旁的“运行到单击处”(运行执行到此处)图标更改成“设置下一语句”功能(图 7)。 单击此处将黄色指令指针移动到该行,并设置调试程序要执行的下一语句。
Windows PDB 文件格式的源连接支持
- 除可移植 PDB 外,Windows PDB 文件格式如今也支持源连接。 支持它的编译器能够将必需信息放在 Windows PDB 文件格式中,调试程序能够基于该信息检索源文件。
“打开文件夹”调试改进
使用“打开文件夹”新模板时的调试体验更加轻松。 若是已安装核心调试程序,使用新模板可选择要使用的调试程序类型。 在解决方案资源管理器的“调试和启动设置”菜单选项中,能够在“选择调试程序”对话框中选择“托管”、“本机”或“混合”。 若是已安装 C++ MDD 体验(Android C++、Linux 调试等),如今能够在相同菜单选项中看到使用 GDB 进行附加和启动的 MinGW 和 Cygwin 支持选项。
“所有刷新”在变量窗口中嵌套值
- 单击“监视”、“自动”和“局部变量”窗口中变量或表达式的父节点的“刷新”按钮时,该节点的全部可见子变量和子表达式也会刷新并从新计算。 再也不须要单击每个子节点的“刷新”按钮。
.NET Core 的 Live Unit Testing 支持
- 如今能够为 .NET Standard、.NET Core 和 ASP.NET Core 项目启用 Live Unit Testing 功能。
Xamarin
- 属性页和应用清单从新设计 - 咱们不断努力提升 iOS 和 Android 项目的属性页的易用性。
- 新权利编辑器 - 添加了用于编辑应用权利的独立编辑器。
有关这些更改的完整概述,请访问 developer.xamarin.com,获取更多详细信息。
.NET Core
- 为 .NET Core 项目添加了 Live Unit Testing 支持。
- 可使用 Visual Basic 建立 .NET Core 控制台应用程序,以及 .NET Core 和 .NET Standard 类库。
- Visual Studio 如今支持建立和运行 .NET Core 2.0 应用(若是已单独安装 SDK)。 可从 .NET Core 2.0 SDK 页安装最新内部版本。
请查看 .NET Core 2.0 博客,获取更多详细信息。
Application Insights 搜索中的相关事件聚类分析
- 已将相关事件的群集添加到 Application Insights 搜索工具的搜索查询结果中。 这些群集能够帮助用户发现应用程序行为使人意外的模式,例如来自一个国家/地区、版本或用户的大量异常。
Redgate 数据工具
Redgate ReadyRoll Core
已更新到版本 1.13.23.3402 以添加:
- 图标改进,具有高 DPI 支持和工具栏更好的响应性。
- “项目设置”选项卡的可用性改进。
- “入门”视图、“部署摘要”和“登陆窗口”的可用性改进。
- 目标数据库不存在时的视图。
- “工具”菜单下的 ReadyRoll 项。
- 对打开 SSMS 时的 SQL 身份验证的支持。
Redgate SQL Prompt Core
- 已更新到版本 7.5.1.1087 以改进对 SQL Server 2016 的语法支持,并修复名称限定和 Azure 链接性问题。
Redgate SQL Search
- 已更新到版本 2.4.2.1321 以添加高 DPI 支持的图标。
Azure Function 工具
- 用于开发 C# Azure Functions 的工具添加到了“Azure 开发”工做负载中。
- 可开发使用预编译 C# 类库的 Azure Function 以及用于指定触发器的属性。
- 可在本地开发计算机上生成、运行和调试。
- 现可直接从 Visual Studio 发布到 Azure。
JavaScript 和 TypeScript
- 咱们从 64 位节点切换到了 32 位节点,从而启动 tsserver,并将语言服务内存消耗减半。
- 导入语句中的文件路径 IntelliSense 如今更快。
- TypeScript 版本如今能够独立于 Visual Studio 更新安装,并基于每一个项目选择(有关详细信息,请查看此处)
Node.js
- 添加了对 Node 8 调试的支持。
- 加强了单元测试运行程序的性能。
- 简化了 npm 包安装程序 UI。
链接的服务中的 Microsoft Graph 提供程序
- 在链接的服务中启用了对 Microsoft Graph API 的支持。
Python
- 咱们解决了许多故障和意外错误,使体验更稳定。
- 咱们改进了屏幕阅读器、键盘导航和高对比度的辅助功能。
- 咱们改进了本地化,非英语用户在 UI 中看到的英文文本更少了。
R 工具
- 改进的 IntelliSense
- 对阻止 ping 的计算机具备更好的 Azure 链接性
- 远程服务安装再也不须要服务管理权限
- 辅助功能和本地化的修复和改进