二进制兼容性和无痛升级:为什么迁移到Visual Studio 2017几乎“太容易了”

Visual Studio 2017是C++功能的一个重大飞跃,与VS 2015相比 . 我们希望新版本能让您在升级后的日常工作中感到高兴。

null

这篇博文重点介绍了从Visual Studio 2015升级到2017所需的步骤 “将C++代码移到Visual Studio 2015的6个原因”(单击跳转到1H:04) ,在这个版本中,我们的团队使将您的代码库移动到Visual Studio 2017变得非常容易。

通过Visual Studio 2017安装程序获取MSVC 2015.3工具集

在VisualStudio 2017中加载以C++旧的工具集为目标的C++项目不会更改项目。这允许您将其加载回以前的IDE中,以防您需要返回,或者您的队友尚未完全升级到2017。为了使在Visual Studio 2017中加载现有项目(就像在以前的版本中一样)不会产生任何影响,IDE 支持项目往返 .

在以前的版本中,您必须同时安装最新和旧的visualstudio,以使最新的IDE能够构建您的项目。 Visual Studio 2017现在允许您直接安装MSVC 2015(v140)工具集 ,这样就可以方便地引导新机器,并通过只安装所需的工具集而不是整个VS 2015 IDE位来减少安装的磁盘占用。

installer platform-toolset-selection

MSVC 2017中的VC运行时与2015二进制兼容

在VisualStudio的这个版本中,C++编译器和库有很多改进,这将促使您移动到VisualStudio 2017的最新工具集(V141)。 新的标准一致性特征 ,改进的codegen, 更快的构建吞吐量 . 但是,您可能会担心您的第三方库依赖项还没有准备好进行这种跳跃。我们经常听到客户说这是第一个迁移阻塞器到一个新的C++工具集(它们是否将依赖项用作二进制文件,或者甚至直接作为源代码)。

不过,使用最新的MSVC工具集,您根本不需要担心这个问题。这仅仅是因为最新的VC运行时与VS2015的VC运行时是二进制兼容的。换句话说,如果您有一个使用v140平台工具集构建的库,那么即使您使用v141 MSVC工具集构建代码,该二进制文件和使用它的代码也将继续工作。

任何用MSVC v141工具集构建的二进制文件都将链接到140版本的VC运行时。vcredit只向后兼容,因此您需要将VS 2017中提供的最新vcredit 140与您的应用程序重新分发。

C:srcClockAppDebug>dumpbin ClockApp.exe /IMPORTS | findstr .dllmfc140ud.dllKERNEL32.dllUSER32.dllGDI32.dllCOMCTL32.dllOLEAUT32.dllgdiplus.dllVCRUNTIME140D.dllucrtbased.dll

VCKG上的数百个C++库现在可以用于VisualStudio 2017

如果你还没有听说过VCPkg,不用担心,它是一个从微软到微软的开源项目 帮助简化Windows上开源库的获取和构建 . 如果您确实将Vcpkg与visualstudio2015一起用于一个或多个开放源代码依赖项,那么您将很高兴了解到这些库(在本文撰写时接近180个)现在是 使用MSVC v141工具集编译,可用于Visual Studio 2017项目 .

因为v141与v140是二进制兼容的,所以所有现有的包都可以继续工作而不需要重新编译;但是,我们建议您在可以享受我们添加到v141的新编译器优化的时候重新编译!

MSVC编译器版本修订为19.1(从Visual Studio 2015中的19.0)

最后但并非最不重要的是,MSVC V141工具集的编译器部分只是作为Visual Studio 2017中的次要版本进行翻转。注意,我们将继续朝着C++一致性和改进的代码生成方面取得重要进展。在进行这些改进时,您可能需要进行某些更改,以使代码标准符合您的要求。所有这些变化都记录在我们的 VisualStudio 2017主题中C++一致性改进 在docs.microsoft.com上。

compiler-version

行动号召

Visual Studio 2017年 我们希望您尽快利用许多新功能。这就是为什么我们让从VisualStudio2015迁移项目变得“太容易”的原因。今天就试试,让我们知道您的想法!

在你走之前,还可以看看其他的 我们发布的VS 2017发布活动公告 ,下载Visual Studio 2017,并在下面或上的评论中与我们分享您的反馈 developercommunity.visualstudio.com

© 版权声明
THE END
喜欢就支持一下吧,技术咨询可以联系QQ407933975
点赞0 分享