在旧的工具集版本上卡住了?移动到Visual Studio 2017而不升级工具集

⏱ 更新日期 2019年3月11日 具有中的最新功能 Visual Studio 2017年 您是否正在开发一个较旧版本的VisualStudio中的C++项目?如果你避免使用VS2017全新功能的原因在下一篇文章中有所提及,那么请继续阅读:这篇文章可能会给你带来好消息。

null

救命啊!我被卡住了!

在日常工作中使用Visual Studio 2017的原因有很多。举几个例子:

你可以 下载Visual Studio 2017 升级您的项目 今天。但是,我们知道,对于某些项目,完全升级并不是一个简单的决定。

  • 您的二进制文件是否绑定到旧版本的CRT上,因为维护原因您无法升级?
  • 您是否依赖于旧的(不一致的)语言构造,如果您使用较新的编译器,这些构造会中断?
  • 您是否依赖于使用特定版本的VC工具集编译的第三方库?
  • 你是否暴露了C++ API来让其他各方消费,所以你只能局限于C++编译器和CRT的特定版本?

如果这些包括了你不使用VS 2017的原因,我将告诉你一个小秘密: 现在就可以开始使用Visual Studio 2017,而无需更改工具集版本 (即当前编译器和匹配的目标CRT)。嗯,visualstudio支持本地多目标和往返并不是什么秘密。我们一定要给它更多的光线: 本机多目标 是最新IDE使用visualstudio以前版本(vs2008及更高版本)安装的工具集进行构建的能力。 往返 最新的IDE能够加载由以前的IDE版本创建的项目,而无需对项目资产(vs2010 projects及更高版本)进行任何更改,从而允许它也加载回以前的IDE。使用这些特性意味着你将利用VS 2017中最新的IDE特性,而不必利用C++编译器、库和构建工具(例如,构建吞吐量)的最新进展。 免责声明 IDE特性也依赖于最新的工具集能力,它们将与旧的工具集不兼容:例如,在内存分析器中缺少类型信息,重构操作“转换为原始字符串文本”将生成符合C++ 11的代码,使得它不与VS 2012编译器一起编译,并且更老。

再说一遍?本地重定目标是如何工作的?

利用本机多目标定位非常简单,只需将Visual Studio 2017与较旧的Visual Studio版本并排安装,然后在VS 2017中打开现有项目。 Visual Studio Icons 在项目加载期间,您将收到关于是否要升级到VS 2017的最新C++工具集航运的提示。由于您想继续使用较旧的编译器和库版本,您应该通过点击“取消”按钮来拒绝。如果您选择用最新的C++工具集进行实验,那么您也可以稍后升级。 图片[2]-在旧的工具集版本上卡住了?移动到Visual Studio 2017而不升级工具集-yiteyi-C++库 现在,每次在VS2017中构建时,生成的二进制文件都与以前在旧版本(如VS2010)中构建的二进制文件完全兼容。这是因为在幕后,VS 2017将构建的委托委托给同一个C++编译器,并消耗与旧IDE相同的库。

新的困境:我应该让我的团队知道吗?关于项目往返

因为你选择了不升级你的项目,VS 2017并不意味着 任何 对项目或解决方案的更改。因此,您在日常工作中使用VS 2017的事实也可能是您的小秘密—您团队的其他成员将继续使用旧版本,而不知道您是否已升级。 这是一个很大的秘密,因为你的同事不会知道你是如何突然提高生产力这么多!所以,你真的能保守秘密吗?一旦猫出袋,每个人都可以使用VS2017在办公室-我们整个团队在这里雷德蒙同意这是一件好事(和…我们没有偏见,在所有)PS:您会注意到,团队中的每个人在VS 2017中第一次加载项目时都会看到相同的升级提示。因此,如果您希望避免来自大厅下面办公室热情的初级成员的意外拉取请求来升级您的所有项目,您可以按照本文档中的说明在传播新闻之前完全禁止升级提示:“ 禁用项目升级 “.

那VisualStudio2008呢?

VisualStudio 2008有自己的C++专用构建系统,称为VCBuild。随着VS 2010,C++移动到MSBug,因此,由于这种变化,在VS 2017中构建VS 2008项目需要更多的工作。最终结果与上面的结果类似:您将使用VS 2017 IDE并生成与从VS 2008 IDE创建的二进制文件完全兼容的二进制文件。首先,除了安装VS 2017之外,您还需要将VS 2010与VS 2008安装在同一台计算机上。这可以确保安装了相应的MSBuild脚本(这些脚本只随VS 2010一起提供)。第二,您需要将VS2008解决方案和项目进行升级。当您收到以下升级提示时,请查看提供的信息。 pic_upgrade2008 现在也是一个好时机 创建VS 2008.sln文件的备份副本 因为它将被VS 2017.sln文件覆盖(如果您只是在试验VS 2017,也许您甚至想升级备份副本而不是源代码管理下的主副本)。当您单击“确定”时,向导将使用新扩展名(.vcxproj)与现有的.vcproj文件并排创建VC项目文件,因此只要您处理.sln文件,升级将不会对现有VS 2008项目产生影响。升级完成后,您将得到一个升级日志报告。如果您的任何项目有任何错误或警告,您应该仔细查看日志,并确保您确认所显示的更改,并跟进其中列出的任何操作项。有关升级日志报告的更多信息,请查看 C++项目升级指南 .现在项目升级已经完成,您的项目实际上以VS2017最新工具集为目标。作为最后一步,您需要返回到VS2008:打开项目属性(在解决方案资源管理器中右键单击项目并选择属性),然后在“常规”下,将“平台工具集”更改为“Visual Studio 2008(v90)”而不是“Visual Studio 2017(v141)”。 C++ Property Pages - List of all C++ Platform Toolsets 在这次更改之后,VS 2017构建的二进制文件将使用与VS 2008 IDE中构建的二进制文件相同的VS 2008编译器和库进行构建。

还是卡住了?

虽然我们希望看到所有的人都使用最新的C++工具集,但是我们知道迁移代码和依赖性需要时间,并且取决于项目生命周期中的位置,它会增加太多的风险。但是,我们希望您能在本机多目标和循环跳转C++项目中找到有用的,并且很好地提醒您,这不应该阻碍您利用最新VisualStudioIDE中IDE改进的优势。总结一下,这里是-链接到 下载Visual Studio 2017 . << 点击这里!还有什么阻碍你的吗?我们想知道还有什么原因可能会阻止您今天升级。请在下面添加您的评论,或直接联系我们 vcupgrade@microsoft.com 更详细的谈话。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享