-
使用 CppProperties.json 可自定义 IntelliSense 和浏览体验。
-
使用 Tasks.json 可自定义生成步骤。
-
使用 Launch.json 可自定义调试体验。
Visual Studio 2017 版本 15.3
-
改进了对备用编译器和生成环境(如 MinGW 和 Cygwin)的支持。 有关详细信息,请参阅
将 MinGW 和 Cygwin 与 Visual C++ 和“打开文件夹”结合使用
。
-
添加了支持,以定义 CppProperties.json 和 CMakeSettings.json 中的全局和特定于配置的环境变量。 launch.vs.json 中定义的调试配置和 tasks.vs.json 中的任务可以使用这些环境变量。 有关详细信息,请参阅
Customizing your Environment with Visual C++ and Open Folder
(使用 Visual C++ 和“打开文件夹”自定义环境)。
-
改进了对 CMake 的 Ninja 生成器的支持,包括轻松定位 64 位平台的能力。
通过“打开文件夹”支持 CMake
Visual Studio 2017 支持在不转换为 MSBuild 项目文件 (.vcxproj) 的情况下使用 CMake 项目。 有关详细信息,请参阅
Visual Studio 中的 CMake 项目
。 使用“打开文件夹”打开 CMake 项目会自动配置用于 C++ 编辑、生成和调试的环境。
-
无需在根文件夹中创建 CppProperties.json 文件,C++ IntelliSense 便可正常工作。 我们还增添了一个新的下拉列表,允许用户在分别由 CMake 和 CppProperties.json 文件提供的配置之间轻松切换。
-
通过 CMakeLists.txt 文件所在的同一文件夹中的 CMakeSettings.json 文件提供进一步的配置支持。
Visual Studio 2017 版本 15.3
-
添加了对 CMake Ninja 生成器的支持。
Visual Studio 2017 版本 15.4
-
添加了对导入现有 CMake 缓存的支持。
Visual Studio 2017 版本 15.5
-
添加了对CMake 3.11、CMake 项目中的代码分析、解决方案资源管理器中的“目标”视图、缓存生成选项以及单个文件编译的支持。 有关详细信息,请参阅
Visual Studio 中的 CMake 支持
和
Visual Studio 中的 CMake 项目
。
Windows 桌面开发
现提供原始 C++ 工作流的更细化的安装体验。 我们添加了可选组件,使你能够仅安装所需工具。 在安装程序 UI 中列出的组件的安装大小指示是不正确的,并低估了总大小。
若要在 C++ 桌面工作负载中成功创建 Win32 项目,则必须安装工具集和 Windows SDK。 安装推荐(选中)的组件“VC++ 2017 v141 工具集(x86、x64)”和“Windows 10 SDK (10.0.nnnnn)”可以确保正常运行 。 如果没有安装必要的工具,就无法成功创建项目,且向导将停止响应。
Visual Studio 2017 版本 15.5
Visual C++ 生成工具(以前作为单独的产品提供)现在作为工作负荷包括在 Visual Studio 安装程序中。 此工作负荷仅安装生成 C++ 项目所需的工具,而不安装 Visual Studio IDE。 包括 v140 和 v141 工具集。 v141 工具集包含 Visual Studio 2017 版本 15.5 中的最近改进。 有关详细信息,请参阅
Visual Studio Build Tools now include the VS2017 and VS2015 MSVC Toolsets
(Visual Studio 生成工具现在包含 VS2017 和 VS2015 MSVC 工具集)。
使用 C++ 的 Linux 开发
热门扩展“
用于 Linux 开发的 Visual C++
”现已纳入 Visual Studio。 此安装提供开发和调试运行在 Linux 环境中的 C++ 应用程序所需的一切信息。
Visual Studio 2017 版本 15.2
在跨平台代码共享和类型可视化方面进行了改进。 有关详细信息,请参阅
跨平台代码共享和类型可视化的 Linux C++ 改进
。
Visual Studio 2017 版本 15.5
-
Linux 工作负荷添加了对 rsync 作为 sftp 的替代方法将文件同步到远程 Linux 计算机的支持 。
-
添加了对针对 ARM 微控制器的交叉编译的支持。 要在安装中启用此支持,请选择使用 C++ 工作负载的 Linux 开发,并选择“嵌入和 IoT 开发”选项 。 此选项将 ARM GCC 交叉编译工具和 Make 添加到你的安装。 有关详细信息,请参阅
ARM GCC Cross Compilation in Visual Studio
(Visual Studio 中的 ARM GCC 交叉编译)。
-
添加了对 CMake 的支持。 现在即可处理现有的 CMake 基本代码,无需将其转换为 Visual Studio 项目。 有关详细信息,请参阅
配置 Linux CMake 项目
。
-
添加了对运行远程任务的支持。 此功能允许在 Visual Studio 连接管理器定义的远程系统上运行任意命令。 远程任务还提供将文件复制到远程系统的功能。
有关详细信息,请参阅
配置 Linux CMake 项目
。
Visual Studio 2017 15.7 版
-
对 Linux 工作负载方案的各种改进。 有关详细信息,请参阅
Linux C++ Workload improvements to the Project System, Linux Console Window, rsync and Attach to Process
(Linux C++ 工作负载对 Project System、Linux Console Window、rsync 和 Attach to Process 的改进)。
-
远程 Linux 连接上标头的 IntelliSense。 有关详细信息,请参阅
配置 Linux CMake 项目
和
IntelliSense for Remote Linux Headers
(远程 Linux 标头的 IntelliSense)。
使用 C++ 的游戏开发
以 DirectX 或 Cocos2d 为后盾,利用 C++ 的强大功能构建专业游戏。
使用适用于 Android 和 iOS 的 C++ 的移动开发
现可利用 Visual Studio 创建和调试面向 Android 和 iOS 的移动应用。
通用 Windows 应用
C++ 是通用 Windows 应用工作负荷的可选组件。 目前,必须手动升级 C++ 项目。 可以在 Visual Studio 2017 中打开定目标到 v140 的通用 Windows 平台项目。 不过,如果没有安装 Visual Studio 2015,则需要在项目属性页中选择 v141 平台工具集。
现可使用新选项编写和打包面向通用 Windows 平台和 Microsoft Store 的 C++ 应用程序:借助桌面桥基础结构,可打包现有的桌面应用程序或 COM 对象,用于通过 Microsoft Store 部署。 或者,用于借助旁加载通过现有通道部署。 Windows 10 中的新功能使你能够以各种方式将 UWP 功能添加到桌面应用程序。 有关详细信息,请参阅
桌面桥
。
Visual Studio 2017 版本 15.5
添加了“Windows 应用程序打包项目”项目模板,极大地简化了使用桌面桥打包桌面应用程序的工作。 可在“文件 | 新建 | 项目 | 已安装 | Visual C++ | 通用 Windows 平台”下获得此模板。 有关详细信息,请参阅
使用 Visual Studio(桌面桥)打包应用
。
在编写新代码时可使用 C ++ / WinRT,它是 Windows 运行时的标准 C ++ 语言投影,仅在头文件中实现。 它使你能够使用任何符合标准的 C++ 编译器来使用和创作 Windows 运行时 API。 C++/WinRT 旨在为 C++ 开发人员提供对新式 Windows API 的优先访问权限。 有关详细信息,请参阅
C++/WinRT
。
自 Windows SDK Insider Preview 内部版本 17025 起,C++/WinRT 包含在 Windows SDK 中。 有关详细信息,请参阅
C++/WinRT is now included the Windows SDK
(C++/WinRT 现在包含在 Windows SDK 中)。
Visual Studio 2017 随附的 Clang/C2 工具集现在支持
/bigobj
开关,这对生成大项目来说至关重要。 它还在编译器前端和后端进行了多项重要的缺陷修复。
C++ 代码分析
用于强制执行
C++ 核心准则
的 C++ 核心检查器现已通过 Visual Studio 分发。 在项目属性页的“代码分析扩展”页中,启用检查器。 然后,在运行代码分析时,包括这些扩展。 有关详细信息,请参阅
使用 C++ 核心准则检查器
。
Visual Studio 2017 版本 15.3
-
添加了对与资源管理相关的规则的支持。
Visual Studio 2017 版本 15.5
-
新的 C++ Core Guidelines 检查包含智能指针正确性、全局初始化表达式的正确使用和标记构造(如
goto
和错误转换)的使用。
-
15.3 中可能存在的一些警告编号在 15.5 中不再可用。 这些警告被更具体的检查替换。
Visual Studio 2017 版本 15.6
-
添加了对单个文件分析的支持,并改进了分析运行时性能。 有关详细信息,请参阅
C++ Static Analysis Improvements for Visual Studio 2017 15.6 Preview 2
(Visual Studio 2017 15.6 预览版 2 的 C++ 静态分析改进)
Visual Studio 2017 15.7 版
-
添加了对
/analyze:ruleset
的支持,它允许指定要运行的代码分析规则。
-
添加了对其他 C++ Core Guidelines 规则的支持。 有关详细信息,请参阅
使用 C++ 核心准则检查器
。
Visual Studio 2017 中的单元测试
Visual Studio 2017 版本 15.5
Google Test Adapter 和 Boost.Test Adapter 现在作为“使用 C++ 的桌面开发”工作负载的组件提供。 它们与测试资源管理器集成。 添加了对 CMake 项目(使用“打开文件夹”)的 CTest 支持,尽管与测试资源管理器的完全集成尚不可用。 有关详细信息,请参阅
编写 C/C++ 单元测试
。
Visual Studio 2017 版本 15.6
-
现已开始支持
Boost.Test
动态库。
-
IDE 中现提供
Boost.Test
项模板。
有关详细信息,请参阅
Boost.Test
单元测试:动态库支持和新的项模板
。
Visual Studio 2017 15.7 版
针对 C++ 单元测试项目添加了对
CodeLens
的支持。 有关详细信息,请参阅
Announcing CodeLens for C++ Unit Testing
(宣布推出用于 C++ 单元测试的 CodeLens)。
Visual Studio 图形诊断
Visual Studio 图形诊断工具:可以使用它们来记录和分析 Direct3D 应用中的呈现和性能问题。 可以在 Windows 电脑、Windows 设备仿真器或远程电脑/设备上本地运行的应用程序上使用它们。
-
顶点和几何着色的输入和输出:
查看顶点着色和几何着色的输入和输出一直以来是最渴求的功能之一。 工具中现已支持此功能。 在“管道阶段”视图中选择“VS”或“GS”阶段,即可在下面的表中开始检查其输入和输出。
-
在对象表中搜索和筛选:
提供一种快捷简单的方法来查找所需资源。
-
资源历史记录:
这种新视图提供了一种简化的方式,以在渲染捕获的帧期间使用资源时查看该资源的整个修改历史记录。 若要调用任何资源的历史记录,请单击任意资源超链接旁边的时钟图标。
它显示新的“资源历史记录”工具窗口,其中填充了资源的更改历史记录。
可以在启用完整调用堆栈捕获的情况下捕获帧。 这样,可以快速推导每个更改事件的上下文,并在 Visual Studio 项目中检查它。 在 Visual Studio 中“工具”>“选项”对话框的“图形诊断”下,设置完整堆栈捕获选项。
-
API 统计信息
:在帧中查看 API 使用情况的高级摘要。 这样可以轻松发现你可能根本没有意识到正在执行的调用或执行太频繁的调用。 可在 Visual Studio 图形分析器中通过“视图”>“API 统计信息”使用此窗口。
-
内存统计信息:
查看驱动程序为你在帧中所创建的资源分配了多少内存。 可在 Visual Studio 图形分析器中通过“视图”>“内存统计信息”使用此窗口。 若要将数据复制到 CSV 文件以便在电子表格中查看,请右键单击,并选择“全部复制”。
-
框架验证:
新的错误和警告列表提供了一种简单的方式,以导航到基于潜在问题(由 Direct3D 调试层检测)的事件列表。 在 Visual Studio 图形分析器中单击“视图”>“帧验证”,可打开该窗口。 然后单击“运行验证”,开始分析。 这可能耗费数分钟时间,具体取决于帧的复杂性。
-
对 D3D12 的帧分析:
使用帧分析来分析具有定向“假设”试验的绘图调用性能。 切换至“帧分析”选项卡,然后运行分析以查看报告。
-
GPU 使用情况改进:
使用 GPU 视图或 Windows Performance Analyzer (WPA) 工具,打开通过 Visual Studio GPU 使用情况探查器获取的跟踪,以便获取更详细的分析。 如果安装了 Windows Performance Toolkit,则在会话概述的右下方将有两个超链接:一个指向 WPA,另一个指向 GPU 视图。
通过此链接在 GPU 视图中打开的跟踪支持同步的 VS 和 GPU 视图时间轴缩放和平移。 VS 中的复选框可控制是否启用同步。