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

尝试在VS 2013中显式打开VS 2012解决scheme(SLN文件)成功。 只需在Windows资源pipe理器中双击它,仍然可以在VS 2012中打开它。

我读过“ Visual Studio 2012不转换VS2010解决scheme? ”,并按照“另存为…”解决scheme文件的build议 。

它仍然默认在VS 2012中打开。

我的问题:

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

.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版本select器”,则只能使用此function。 默认的.sln应用程序是一个特定的版本,这并不罕见。 在Windows 8中:

在这里输入图像描述

你可以知道哪个是默认的,因为它说“继续使用”:

在这里输入图像描述

在这里输入图像描述

请注意,您也可以使用命令行强制升级.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中为您的解决scheme文件select“另存为”,并以新名称覆盖或保存解决scheme。

阅读更多: http : //msdn.microsoft.com/en-us/library/w15a82ay.aspx

似乎OP已经有一个工作的答案…但对我来说,问题是不同的。 我有一个VS 2012的解决scheme(实际上有几个),并希望将它们转换为2013(我知道对.sln文件是一个微不足道的变化,但我希望自动完成,以防有一些秘密升级逻辑,我不知道) 。

所以我想我会在VS2013中打开它,它会自动升级,然后我会设置双击解决scheme,并在VS2013中看到它前进。 但是在VS2013中打开并没有按照预期自动升级我的解决scheme,在VS2013中打开文件后,我找不到明确的方法来强制升级。 我可以使用该解决scheme,保存我的更改,并closuresVS2013,但.sln将保持不变和未升级。

原来我的问题是在我如何打开解决scheme…作为一种习惯,我右键单击文件,并select“打开”select我想用来打开文件的程序。 我经常这样做。 注意我不是在谈论改变默认的“打开”程序,而只是用一个特定的程序打开一个文件。 所以我会右键点击.sln文件…用Visual Studio 2013打开…没有什么会升级。

最后我想进入VS2013,然后做文件>打开并select.sln文件(这对我来说是陌生的,因为我几乎没有打开任何东西,也许你是相同的方式)。 无论如何,即时升级解决scheme文件。

升级之后,.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,然后从File> Open对话框中select.sln。 使用explorer shell强制.sln文件在VS2013中打开不会调用升级逻辑(显然)。

还有一点需要注意的是,我用另外一个解决scheme进行了testing,在通过configurationpipe理器(显然是“接触”.sln文件)进行了更改之后,它将VS2012升级到VS2013,即使通过右键单击打开。

我有一个以前从2010年到2013年成功升级的解决scheme,但仍然显示与2010年相关的.sln。

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

将.sln文件关联设置为“Visual Studio版本select器”没有任何改变,解决scheme在2010年继续开放。

devenv(name).sln /升级方法没有改变我的.sln文件。

黑客的.sln文件的原始文本损坏了我的,它根本不会打开。

为了解决这个问题,我只是改变了.sln文件的以下几行:

 Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 

进入这些:

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

注释行将在解决scheme加载器进行分析时进行更改。

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

  1. 在VS 2015中打开解决scheme。
  2. 添加一个新的项目到解决scheme。 (我添加了一个testing项目。)
  3. 删除该项目。
  4. 保存解决scheme。

此时您可能想要删除已删除的项目文件夹,因为步骤3没有删除它。

当zumey和TCC的答案都没有的时候,这对我有效 。

编辑

地铁Smurf有一个类似的,但比我更容易回答类似的问题 。 他的步骤是:

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