我用vs2012打开了我的vs2010解决方案,但从2008年到2010年它没有进行任何转换。所以我的解决方案仍然与10标签相同。当我制作新的解决方案时,它上面有11个标签。我没有遇到任何问题,但我很好奇。有什么区别吗?如果是的话,如何转换成vs2012解决方案?
答案 0 :(得分:106)
我设法'转换'解决方案文件,将.SLN文件中包含'#Visual Studio 2010'的行更改为'#Visual Studio 2012'。
答案 1 :(得分:90)
不需要或建议手动编辑解决方案文件。只需打开VS2012中的VS2010解决方案,左键单击解决方案(位于解决方案资源管理器的最顶层),然后使用文件 | 另存为以覆盖原始文件。这将有效地将VS2010解决方案文件转换为VS2012解决方案文件。
答案 2 :(得分:32)
There are some exceptions,但大多数情况下,您都可以在VS2012和VS2010 SP1中打开相同的项目和解决方案文件文件。
VS2012 可能在您第一次打开它们时转换项目,但更改是(除了在链接的文档中注明)与VS2010向后兼容(即使用条件,只有在需要时才适用于任何一个版本)大多数项目类型将完全不受影响。
答案 3 :(得分:6)
它与Visual Studio 2012兼容性
有关如果您在带有Service Pack 1(SP1)的Visual Studio 2010中创建了资源,那么很多资产都将在Visual Studio 2012中加载和运行,而您无需采取任何进一步操作。
即使在Visual Studio 2012中打开这些资产,很多资产也会在Visual Studio 2010 SP1中再次打开,没有任何问题
答案 4 :(得分:6)
对于C ++项目,它有所不同,因为2012编译器(VC11)将仅用于明确2012的项目,而不是用于在VS 2012中打开的2010项目。Some C++11 improvements are available with the VC11 compiler but not with VC10(请参阅此SO Answer }摘要),包括:
要从VS 2010项目转换为VS2012 ,无需在现有项目上手动编辑解决方案文件或“另存为”。代替:
如果您在第一次提示时拒绝更新,则可以稍后通过打开项目菜单并选择更新VC ++项目... [在顶部菜单选项]
来自MSDN的“How to: Upgrade Visual C++ Projects to Visual Studio 2012” (此页面来自@Joachim的MSDN link,但我希望在此处得到答案,因为其他一些答案建议使用手动变通方法代替此VS 2012功能
答案 5 :(得分:2)
在我的情况下,我有一些Visual Source Safe(我的项目是用Visual Studio 2003/2005创建的,是的,很老了!)
手动删除VSS后,转换成功。 PS:我知道这是关于VS2010的,但也许这有助于其他人。
答案 6 :(得分:1)
您可以通过执行以下操作将项目从VS2010转换为VS2012:
在解决方案资源管理器中右键单击解决方案,然后选择添加 - >,将2010项目添加到VS2012解决方案中。现有项目......
项目将出现在解决方案中,并且会在其名称后附加(Visual Studio 2010)。
右键单击添加的项目,然后选择“属性”。
在配置属性中 - >常规窗格,将Platform Toolset字段中的设置更改为Visual Studio 2012(v110)
对每种配置类型重复,例如发布和调试。
答案 7 :(得分:1)
我在谷歌搜索特定问题的解决方案时遇到了这个问题:MSBuild无法执行针对VS2012解决方案的发布目标,该解决方案在从命令行(特别是通过TeamCity)调用时已在VS2010中启动:/ p>
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正在VS10位置寻找Azure SDK 2.3目标(C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Windows Azure Tools \ 2.3 \ Microsoft.WindowsAzure.targets)。 Sayed Ibrahim Hashimi在blog post中解释了原因,据我所知,归结为他们在为解决方案文件启用跨版本兼容性时做出的一些决定。解决方案很简单:将VisualStudioVersion属性添加到MSBuild调用,如下所示:
msbuild.exe MyAwesomeWeb.sln /p:VisualStudioVersion=11.0
实际上,这会在每个csproj文件中覆盖以下内容:
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
据推测,您可以通过手动编辑所有这些来获得相同的结果,用11.0替换10.0,但这可能会破坏向后兼容性 - 我还没有尝试过。我还没有尝试更新VS2013以查看问题是否仍然存在。
所以通过回答这个问题来解决这个问题:是的,在你“转换”(使用其他回答者提供的任何方法)之前存在一些差异,之后仍然存在一些差异。
答案 8 :(得分:0)
这略有不同,但是沿着相同的路线,以防万一:
我正在加载一个项目,看起来它正在加载,然后继续显示所有项目不可用。迁移报告中没有错误。我尝试使用各种方法重新加载解决方案和项目,包括建议。
最后我找到了一个&#34;解决错误&#34;右键单击解决方案资源管理器中的解决方案时的选项。 VS再次经历了一个加载过程而且工作正常;没问题。
我不知道那段时间的做法有多么不同,但显然它有所不同。
答案 9 :(得分:0)
只需编辑.sol文件即可 将版本更改为11
像这样Microsoft Visual Studio解决方案文件,格式版本12.00
Visual Studio 2012