版本15.3更新在用户离线下载时更加人性化,包含了进度显示,下载出错可以输入R,进行下载的重新尝试,并在当前下载框下继续下载为完成的作业,结合 --layout 参数的离线文件的检查和修复,并且在下载的完成后不会自动退出下载框,而是等待任意键的输入。
本次针对15.3版本进行了中文语言的下载,在下载速度和稳定性上15.3版本有了更大的进步,中途基本不会遇见下载某个组件包失败的情况,并且下载完成的检验修复比15.2版本更加严格,在15.2版本中下载某个组件包不完整的情况下,下载器并不会做严格到每个文件的检查,在新的版本中 --fix 参数的检查是具有更高的严格性的,本次下载了常规组件的中文语言离线包,文件大小为24.2G,另外注意的是其中有一个文件包的文件名长度超出限制,在复制或者移动离线包时这个离线数据包(705kb)时无法移动,在备份文件时需要注意,可以借助工具进行移动复制,或者借助下载器在需要创建数据包的目录下,重新重定向运行离线命令即可。
Visual Studio 2017(版本 15.3)发布说明
本文包含有关 Visual Studio 2017(版本 15.3)最新发布的信息。 单击此按钮下载。
有关详细信息,请参阅安装指南。
反馈
我们期待你的宝贵意见和建议! 可通过安装程序或 Visual Studio IDE 中的报告问题选项报告问题。 图标位于右上角。 可在开发人员社区门户中跟踪自己的反馈。 如有任何建议,请通过 UserVoice 网站告知我们。
发布日期:2017 年 8 月 14 日 - Visual Studio 2017(版本 15.3)
- 辅助功能的改进。
- 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 安装失败。
详细了解版本 15.3 中已解决的客户所报问题。
此版本中的新增功能
辅助功能的改进
我们解决了此版本中的 1700 多个辅助功能问题,使 Visual Studio 比以往任何时候都更容易访问。
-
现可访问“蓝(额外对比度)”主题(图 1),该主题对某些颜色进行了微调,使编码时想使用高一点的对比度的用户感到颜色对比更加舒适
(图 1)“蓝(额外对比度)”主题 -
现可借助 Visual Studio 编辑器,通过新的“显示行注释”命令集发现并在文本修饰之间导航。 可在编辑器上下文菜单(图2)中找到该新功能。 请参阅 Visual Studio 编辑器部分,了解详细信息。
(图 2)显示行注释
Visual Studio IDE 的改进
- 在“帮助”菜单下添加了“键盘辅助功能”菜单命令。 这为获得有关辅助功能提示和技巧的联机文档提供了便利。
-
现在,诊断系统会通过“信息栏”通知用户可能涉及 Visual Studio 意外终止的扩展(图 3)。 “信息栏”提供有关终止的信息,并询问是否要禁用可疑扩展。
(图 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 连接性
- 远程服务安装不再需要服务管理权限
- 辅助功能和本地化的修复和改进