Visual Studio 2019突破了个人和团队生产力的界限。我们希望您会发现这些新功能引人注目,并很快开始升级到Visual Studio 2019。
在您考虑升级时,请放心,Visual Studio 2019使您可以轻松地从以前版本的Visual Studio中移动代码库。这篇文章捕获了为什么升级到Visual Studio 2019将无痛苦的原因。
您可以在已安装早期版本的计算机上安装最新版本的Visual Studio,并继续并行使用这两个版本而不会产生干扰。这是尝试Visual Studio 2019或将其用于某些项目的好方法。 Visual Studio Installer允许您从中央UI管理Visual Studio 2017和2019的安装。
即使您还没准备好将项目移动到最新的工具集(MSVC v142),您仍然可以在Visual Studio 2019 IDE中加载项目并继续使用当前的旧工具集。
将现有C ++项目加载到IDE中不会升级/更改项目文件。这样,您的项目也会加载到以前版本的IDE中,以防您需要返回或者您的队友尚未升级到VS 2019(此功能也称为项目往返 )。
您框中旧版VS安装的工具集在最新的IDE中作为平台工具集可见。如果您刚开始只在机器上安装了VS 2019,则可以通过自定义C ++ Desktop工作负载(使用Individual Components选项卡列出所有选项)直接从Visual Studio Installer获取这些旧工具集。
在Visual Studio 2019 wave(预览,其一般可用性和未来更新)中,我们计划继续发展我们的C ++编译器和库
MSVC v142工具集现已推出,它已经为您提供了一些迁移的激励措施 。
我们清楚地听到了MSVC v141今天快速采用的一个主要原因是它与MSVC v140的二进制兼容性。这允许您按照自己的进度将自己的代码迁移到v141工具集,而无需等待任何第三方库依赖项先迁移。
我们希望保持这种势头,并确保您在MSVC v142上也有类似的成功采用体验。这就是为什么我们今天宣布我们的团队致力于为MSVC v141提供MSVC v141和v140的二进制兼容性 。
这意味着如果使用v142工具集编译所有代码但仍有一个或多个使用v140或v141工具集构建的库,则将所有这些库(使用最新的链接器)链接在一起将按预期工作。为了实现这一点,VC Runtime不会在VS 2019中更改其主要版本,并且仍然向后兼容以前的VC Runtime版本。
C:sourcereposTimerAppDebug>dumpbin TimerApp2019.exe /IMPORTS | findstr .dll mfc140ud.dll KERNEL32.dll USER32.dll GDI32.dll COMCTL32.dll OLEAUT32.dll gdiplus.dll VCRUNTIME140D.dll ucrtbased.dll 2EE _seh_filter_dll
当您混合使用不同支持的MSVC工具集版本构建的二进制文件时,您可以使用应用程序重新分发VCRedist的版本要求。具体来说,VCRedist不能比用于构建应用程序的任何工具集版本旧。
如果您今天在VS 2015或VS 2017中使用Vcpkg用于一个或多个开源依赖项,那么您将很高兴地了解到这些库(在撰写本文时接近900)现在可以使用MSVC进行编译v142工具集,可在Visual Studio 2019项目中使用。
如果您刚开始使用Vcpkg,请不要担心--Vcpkg是Microsoft的一个开源项目,旨在帮助简化Windows,Linux和Mac上的开源C ++库的获取和构建 。
由于v142与v141和v140二进制兼容,因此您已安装的所有软件包也将继续在VS 2019中运行而无需重新编译;但是,我们建议您尽可能重新编译,以便您可以享受我们已添加到v142的新编译器优化!
如果您将VS 2019 Preview与旧版VS(例如VS 2017)并排安装,则Vcpkg将更喜欢稳定版本,因此您需要将Vcpkg的三元组变量VCPKG_PLATFORM_TOOLSET设置为v142以使用最新的MSVC工具集。
最后但并非最不重要的是,MSVC v142工具集的编译器部分将其版本更改为19.20 - 与MSVC v141相比,只是次要版本增量。
请注意,MSVC编译器和STL从MSVC v141开始支持功能测试宏,它们应该是使代码支持多个MSVC版本的首选选项。
请立即下载Visual Studio 2019 ,告诉我们您的想法。我们的目标是让您尽可能轻松地过渡到VS 2019,因此我们一如既往地对您的反馈非常感兴趣。我们可以通过以下评论或电子邮件( visualcpp@microsoft.com )与我们联系。
如果您遇到Visual Studio或MSVC的其他问题或有任何建议,请通过产品或开发者社区的帮助>发送反馈>报告问题/提供建议告诉我们。您也可以在Twitter上的@VisualC找到我们。