Visual Studio 2012不转换vs2010解决方案?

bat*_*aci 68 projects-and-solutions solution visual-studio-2012

我用vs2012打开了我的vs2010解决方案,但从2008年到2010年它没有进行任何转换.所以我的解决方案仍然与10标签相同.当我制作新的解决方案时,它上面有11个标签.我没有遇到任何问题,但我很好奇.有什么区别吗?如果是的话,如何转换成vs2012解决方案?

Ruu*_*Kok 106

我设法'转换'解决方案文件,将包含'#Visual Studio 2010'的行更改为.SLN文件中的'#Visual Studio 2012'.

  • 为我工作 - 轻松修复!此外,这个答案很重要,因为它允许您确保(默认情况下)您的同事将使用正确版本的Visual Studio打开您的解决方案.当同事从源代码控制中将其拉下来时,很高兴当他们双击文件系统上的.sln文件时,它将在Visual Studio 2012中打开...而不是2010年. (5认同)
  • @DanielSchilling:每当新转换的项目使用2012年出现的任何2010年不存在的功能时,这可能是一个问题.一个例子是项目更新可以将平台工具集更改为v110,VS2010不知道和将导致生成错误错误MSB8008. (4认同)
  • 我需要在sln文件中将"格式版本11.00"更改为12.00. (2认同)

2To*_*oad 90

不需要或建议手动编辑解决方案文件.只需打开VS2012中的VS2010解决方案,左键单击解决方案(位于解决方案资源管理器的最顶层),然后使用文件 | 另存为以覆盖原始文件.这将有效地将VS2010解决方案文件转换为VS2012解决方案文件.

  • 只有在我执行"另存为"之前首先左键单击解决方案(位于解决方案资源管理器的最顶部)时,这才适用于我 (6认同)
  • 这种方法在VS2013中也很有效. (5认同)
  • 我比手动编辑解决方案文件更喜欢这个 - 这就是我过去常常要做的事情. (2认同)

Joa*_*son 32

有一些例外,但大多数情况下,您将能够在VS2012和VS2010 SP1中打开相同的项目和解决方案文件文件.

VS2012 可能会在您第一次打开它们时转换项目,但是更改(除了在链接的文档中指出)与VS2010向后兼容(即使用条件,只有在需要时才应用于任何一个版本)大多数项目类型将完全保持不变.


小智 6

它与Visual Studio 2012兼容性有关

如果您在带有Service Pack 1(SP1)的Visual Studio 2010中创建了资产,则许多资源将在Visual Studio 2012中加载和运行,而无需您执行任何进一步操作.

即使在Visual Studio 2012中打开这些资产,许多资产也将在Visual Studio 2010 SP1中再次打开,没有任何问题


Dar*_*ryn 6

对于C++项目,它有所不同,因为2012编译器(VC11)将仅用于明确2012的项目,而不是用于VS 2012中打开的2010项目.VC11编译器可以使用一些C++ 11改进但不能用于VC10(参见本SO答案摘要),包括:

  • 基于范围的for循环
  • 新标准库头文件(原子,互斥,线程......)
  • 较小的标准库容器大小
  • (2012年11月CTP交付给VS 2012 还有更多内容)

为了从VS 2010项目转换到VS2012 ,无需在现有项目上手动编辑解决方案文件或"另存为".代替:

如果在第一次提示时拒绝更新,则可以稍后通过打开" 项目"菜单并选择" 更新VC++项目"来更新项目... [位于菜单选项顶部]

从MSDN的" 如何:将Visual C++项目升级到Visual Studio 2012 "
(此页面链接自@Joachim的MSDN链接,但我想在此处获得答案,因为其他一些答案建议使用手动变通方法代替此VS 2012特征)