如何强制在Visual Studio 2013中打开解决方案文件(SLN)?

时间:2013-10-22 08:54:37

标签: .net visual-studio-2012 solution visual-studio-2013

尝试在VS 2013中明确打开VS 2012解决方案(SLN文件)成功。只需在Windows资源管理器中双击它,仍然可以在VS 2012中打开它。

我已阅读“Visual Studio 2012 doesn't convert vs2010 solution?”并按照suggestion to "Save As..." the solution file

默认情况下,它仍会在VS 2012中打开。

我的问题:

如何更改SLN文件以强制在Visual Studio 2013中打开它?

5 个答案:

答案 0 :(得分:123)

.sln文件将预期版本指示为早期行之一 - 例如:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013

或:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012

但是 - 如果.sln文件的默认应用程序是“Microsoft Visual Studio版本选择器”,它只能使用它。默认的.sln应用程序通常是特定的版本,这种情况并不少见。在Windows 8中:

enter image description here

你可以告诉哪个是默认值,因为它说“继续使用”:

enter image description here

enter image description here

答案 1 :(得分:34)

请注意,您还可以使用命令行强制升级.sln或.proj文件,其中devenv是目标IDE版本:

devenv "MyProject.sln" /upgrade

示例:

"%programfiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe" "D:\Source\MySolution.sln" /upgrade

请注意,这不会打开Visual Studio。另一种方法是从IDE中选择"另存为"为您的解决方案文件,并以新名称覆盖或保存解决方案。

了解更多: http://msdn.microsoft.com/en-us/library/w15a82ay.aspx

答案 2 :(得分:22)

看起来OP已经有了一个可行的答案......但对我来说问题是不同的。我有一个VS 2012解决方案(实际上有几个),并希望将它们转换为2013年(我理解这是对.sln文件的一个微不足道的更改,但我希望它自动完成,以防有一些我不知道的秘密升级逻辑)

所以我想我会在VS2013中打开它,它会按预期自动升级,然后我会设置双击解决方案并在VS2013中查看它。但在VS2013中打开并不是按预期自动升级解决方案,在VS2013中打开文件后我找不到强制升级的明确方法。我可以使用解决方案,保存我的更改,然后关闭VS2013,但.sln将保持不变且未升级。

原来我的问题在于我如何打开解决方案......作为一种习惯,我右键单击文件并选择"打开"选择我想用来打开文件的程序。我经常这样做。注意我不是在谈论更改默认值"打开"程序,但只打开一个具有特定程序的文件。所以我会右键单击.sln文件...用Visual Studio 2013打开......没有任何东西可以升级。

最终我想进入VS2013,然后做文件>打开并选择.sln文件(这对我来说很陌生,因为我几乎没有打开任何东西,也许你的方式相同)。无论如何,它确实立即升级了解决方案文件。

升级后,.sln文件的2-3行改为:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012

到此:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.30501.0
MinimumVisualStudioVersion = 10.0.40219.1

根据我的经验,要自动将VS2012 .sln更新为VS2013,您必须打开VS2013并从文件>中选择.sln。打开对话框。使用资源管理器shell强制.sln文件在VS2013中打开不会调用升级逻辑(显然)。

进一步说明,我测试了另一个解决方案,在通过Configuration Manager进行更改后(显然"触及" .sln文件)它确实将VS2012升级到VS2013,即使在打开它之后也是如此通过右键单击打开。

答案 3 :(得分:7)

我的解决方案之前已经成功升级到2010年至2013年,但仍然显示.sln与2010年相关。

我测试了此线程中给出的所有方法,并且唯一成功更正.sln的方法是单独打开Visual Studio 2013,然后在IDE中打开仍与2010关联的解决方案,然后使用[File] > [保存(名称).sln as]以覆盖现有的.sln文件。

将.sln的文件关联设置为“Visual Studio版本选择器”没有变化,解决方案在2010年继续开放。

devenv(name).sln / upgrade方法对我的.sln文件没有任何更改。

黑客攻击.sln文件的原始文本已损坏我的内容,它根本无法打开。

答案 4 :(得分:4)

这可能适用于尝试将解决方案文件升级到Visual Studio 2015的读者。(我升级了VS 2012解决方案。)

  1. 在VS 2015中打开解决方案。
  2. 向解决方案添加新项目。 (我添加了一个测试项目。)
  3. 删除项目。
  4. 保存解决方案。
  5. 您可能希望此时删除已删除的项目文件夹,因为步骤3未删除它。

    zumey’sTCC’s答案都没有时,这对我有用。

    修改

    对于Metro Smurf

    similar question有一个类似但更简单的答案。他的步骤是:

    1. VS 2015中的开放式解决方案
    2. 右键单击解决方案>添加>新解决方案文件夹(名称无关紧要)
    3. 保存解决方案
    4. 删除新添加的解决方案文件夹
    5. 保存解决方案