Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[原文发表地址]:Binary Compatibility and Pain-free Upgrade: Why Moving to Visual Studio 2017 is almost “too easy”
[原文发表时间]:3/7/2017
与VS 2015相比,Visual Studio 2017在C ++功能方面有重大的飞跃。我们希望升级到新版本后能让您的日常工作变得更轻松。
这篇博客主要介绍从Visual Studio 2015升级到2017的步骤。正如我们在BUILD 2016会话中谈论的“将C ++代码转移到Visual Studio 2015的6个原因”(点击跳转到1h:04)。在这个版本中,我们团队使代码库移动到Visual Studio 2017非常容易。这里有四个原因。
通过Visual Studio 2017安装程序获取MSVC 2015.3工具集
在Visual Studio 2017中加载使用较老C++工具集的C++工程,并不会改变C++工程。 这允许你在以前的IDE中加载这个工程,以备你需要使用之前的IDE加载工程,或者你仍然有队友把VS没有完全升级到2017。为了使工程在Visual Studio 2017加载中不受到任何影响,就像在以前的版本中,IDE支持工程往返。
在以前的版本中,为了能够构建项目,必须同时安装最新版本和旧版本的Visual Studio。 现在Visual Studio 2017允许您直接安装MSVC 2015(v140)工具集,使其便于引导新机器,通过仅安装所需的工具集而不是整个VS 2015 IDE来减少安装所需的磁盘空间。
MSVC 2017 中的VC运行时与2015二进制兼容
这个版本的Visual Studio中C++编译器和库有很多改进,这将引导您转换到Visual Studio 2017的最新工具集(v141)- 新的标准一致性功能,改进的代码生成功能,更快的构建吞吐量。 然而,您可能担心您的第三方库依赖关系没有准备好这样的跳转。 我们经常听到客户说对于一个新的C++工具集来说这是第一个迁移拦截器(无论它们将依赖性作为二进制文件还是直接作为源)。
但是,使用最新的MSVC工具集,您不需要担心这一点。 这是因为最新的VC运行时与VS 2015的VC运行时二进制兼容。 换句话说,如果你有一个使用v140平台工具集构建的库,现在即使你使用v141 MSVC工具集构建代码,您的二进制文件和使用它的代码也将继续工作。
使用MSVC v141工具集构建的任何二进制文件都将链接到VC运行时的140版本。 VCRedist只是向后兼容,所以你需要使用你的APP在VS 2017中重新发布最新的VCRedist 140。
C:\src\ClockApp\Debug>dumpbin ClockApp.exe /IMPORTS | findstr .dll
mfc140ud.dll
KERNEL32.dll
USER32.dll
GDI32.dll
COMCTL32.dll
OLEAUT32.dll
gdiplus.dll
VCRUNTIME140D.dll
ucrtbased.dll
Vcpkg上的数百个C ++ 库在Visual Studio 2017中可用
如果你还没有听说过VCPkg,不用担心 -- 这是一个来自微软的开源项目,以帮助简化在Windows上的开源库的采集和构建。 如果你在一个或多个开源依赖项上使用Visual Studio 2015中的Vcpkg,那么你会很乐意知道这些库(在编写本文时接近180),使用MSVC v141工具集编译,并可以在Visual Studio 2017工程中使用。
因为v141与v140是二进制兼容的,所有已经有的包将继续工作,而不需要重新编译; 然而,我们建议重新编译,这样你可以体验我们添加到v141编译器的新的优化!
MSVC编译器版本转换为19.1(从Visual Studio 2015中的19.0)
最后很重要的一点,MSVC v141工具集的编译器部分仅在Visual Studio 2017中作为次要版本进行了改进。请注意,我们将继续朝着C++ 一致性以及代码的生成功能方向进行改进。 在进行这些改进后,您可能需要进行某些更改以使您的代码符合标准。 所有这些更改都记录在docs.microsoft.com 的Visual Studio 2017主题中的C++ 一致性改进。
采取行动 Visual Studio 2017具有许多新功能,我们希望您尽快使用。 这就是为什么我们使您的项目从Visual Studio 2015转换变得 “太容易”。今天尝试一下,让我们知道你的想法!
离开这篇博客之前,还请查看其它我们为VS 2017发布活动的宣布帖子,下载Visual Studio 2017,在下面的评论或 developercommunity.visualstudio.com 网站上与我们分享您的反馈。