我用vs2012打开了我的vs2010解决方案,但它并没有像从2008升级到2010那样进行任何转换。因此,我的解决方案仍然保持10的标签。当我创建一个新的解决方案时,它当然会有11的标签。我没有遇到任何问题,但我很好奇。有什么区别吗?如果有,如何将其转换为vs2012解决方案?
我用vs2012打开了我的vs2010解决方案,但它并没有像从2008升级到2010那样进行任何转换。因此,我的解决方案仍然保持10的标签。当我创建一个新的解决方案时,它当然会有11的标签。我没有遇到任何问题,但我很好奇。有什么区别吗?如果有,如何将其转换为vs2012解决方案?
我成功地“转换”了解决方案文件,将包含“#Visual Studio 2010”的行更改为“.SLN文件中的“#Visual Studio 2012”。
手动编辑解决方案文件不是必要的,也不被推荐。只需在VS2012中打开VS2010解决方案,在解决方案资源管理器的最顶层左键单击解决方案,然后使用 文件 | 另存为 覆盖原始文件即可。这将有效地将VS2010解决方案文件转换为VS2012解决方案文件。
这篇文章是关于Visual Studio 2012的兼容性问题。
如果你在Visual Studio 2010 SP1中创建了你的资源,那么很多资源在不需要任何额外操作的情况下就能够在Visual Studio 2012中加载和运行。
即使你在Visual Studio 2012中打开了这些资源,很多资源也可以在Visual Studio 2010 SP1中再次无问题地打开。
为了从VS 2010项目转换到VS2012,无需手动编辑解决方案文件或“另存为”现有项目。相反:
如果您在第一次提示时拒绝更新,您可以通过打开项目菜单并选择更新VC++项目...(在菜单选项顶部)稍后更新项目。来自MSDN的“如何:将Visual C++项目升级到Visual Studio 2012”(此页面链接自@Joachim的MSDN链接,但我想在SO上提供答案,因为许多其他答案建议手动解决方法而不是使用VS 2012功能)。我在谷歌上搜索解决特定问题的方法时遇到了这个问题:当通过命令行(特别是通过TeamCity)对起源于VS2010的VS2012解决方案执行发布目标时,MSBuild无法执行。
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Windows Azure Tools\2.3\Microsoft.WindowsAzure.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
MSBuild在寻找Azure SDK 2.3目标时位于VS10位置 (C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Windows Azure Tools\2.3\Microsoft.WindowsAzure.targets)。原因由Sayed Ibrahim Hashimi在博客文章中解释,我理解的是,这归结于他们在启用解决方案文件的跨版本兼容性时做出的一些决策。 解决方案很简单:在MSBuild调用中添加VisualStudioVersion属性,类似于以下内容:
msbuild.exe MyAwesomeWeb.sln /p:VisualStudioVersion=11.0
实际上,这将覆盖每个csproj文件中的以下内容:
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
这很简单,只需要编辑.sol文件并将版本更改为11
就像这样
Microsoft Visual Studio解决方案文件,格式版本12.00
Visual Studio 2012这个稍微有点不同,但是沿着同样的方向,如果有帮助的话:
我正在加载一个项目,看起来它正在加载,然后一直显示所有项目都不可用。迁移报告上没有错误。我尝试了多次重新加载解决方案和项目,使用了各种方法,包括这里的建议。
最后,我在“解决错误”选项中找到了一个选项,在解决方案资源管理器中右键单击解决方案。VS再次进行了加载过程,它成功了;没有问题。
我不知道它那次做了什么不同的事情,但显然它有所不同。