尝试在 VS 2013 中显式打开 VS 2012 解决方案(SLN 文件)成功。只需在 Windows 资源管理器中双击它仍然会在 VS 2012 中打开它。
我已阅读“ Visual Studio 2012 不转换 vs2010 解决方案? ”并按照“另存为...”解决方案文件的建议。
它仍然默认在 VS 2012 中打开。
我的问题:
如何更改 SLN 文件以强制在 Visual Studio 2013 中打开它?
尝试在 VS 2013 中显式打开 VS 2012 解决方案(SLN 文件)成功。只需在 Windows 资源管理器中双击它仍然会在 VS 2012 中打开它。
我已阅读“ Visual Studio 2012 不转换 vs2010 解决方案? ”并按照“另存为...”解决方案文件的建议。
它仍然默认在 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 版本选择器” ,它只能使用它。.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 中,为您的解决方案文件选择“另存为”,然后以新名称覆盖或保存解决方案。
似乎 OP 已经有了一个可行的答案......但对我来说问题是不同的。我有一个 VS 2012 解决方案(实际上是几个)并想将它们转换为 2013(我知道这是对 .sln 文件的一个微不足道的更改,但我希望它自动完成,以防有一些我不知道的秘密升级逻辑) .
所以我想我会在 VS2013 中打开它,它会按预期自动升级,然后我会设置为双击解决方案并在 VS2013 中看到它。但是在 VS2013 中打开并没有按预期自动为我升级解决方案,在 VS2013 中打开文件后我找不到强制升级的明确方法。我可以使用该解决方案,保存更改并关闭 VS2013,但 .sln 将保持不变且未升级。
原来我的问题在于我是如何打开解决方案的……作为一种习惯,我右键单击文件并选择“打开方式”来选择我想用来打开文件的程序。我经常这样做。注意我不是在谈论更改默认的“打开方式”程序,而只是使用特定程序打开文件一次。所以我会右键单击 .sln 文件......用 Visual Studio 2013 打开......并且没有任何东西会升级。
最终我想进入 VS2013,然后执行 File > Open 并选择 .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。使用资源管理器外壳强制 .sln 文件在 VS2013 中打开不会调用升级逻辑(显然)。
作为进一步说明,我使用另一个解决方案进行了测试,并在通过配置管理器(显然“触及”.sln 文件)进行更改后,它确实将 VS2012 升级到了 VS2013,即使在通过右键单击打开它之后也是如此。
我有一个解决方案,该解决方案之前已成功从 2010 升级到 2013,但仍显示 .sln 与 2010 相关联。
我测试了这个线程中给出的所有方法,唯一成功纠正 .sln 的方法是单独打开 Visual Studio 2013,然后在 IDE 中打开仍然与 2010 关联的解决方案,然后使用 [File] > [Save (name).sln as] 覆盖现有的 .sln 文件。
将 .sln 的文件 assoc 设置为“Visual Studio 版本选择器”没有任何变化,解决方案在 2010 年继续打开。
devenv (name).sln /upgrade 方法没有更改我的 .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
注释行将在解决方案加载器解析时更改。
更新:
更好的方法是使用另一个回复中指出的 devenv 命令行,这将为您安全地完成它。
这可能适用于尝试将解决方案文件升级到 Visual Studio 2015 的读者。(我升级了 VS 2012 解决方案。)
您可能希望此时删除已删除的项目文件夹,因为第 3 步并未将其删除。
编辑
Metro Smurf对类似问题有类似但比我更容易的答案。他的步骤是: