尝试在VS 2013中显式打开VS 2012解决方案(SLN文件)是成功的。但是,在Windows资源管理器中双击它仍然会在VS 2012中打开。
我读过 "Visual Studio 2012 doesn't convert vs2010 solution?" 并遵循了 建议“另存为...”解决方案文件。
仍然默认情况下它会在VS 2012中打开。
我的问题:
如何更改SLN文件以强制在Visual Studio 2013中打开?
尝试在VS 2013中显式打开VS 2012解决方案(SLN文件)是成功的。但是,在Windows资源管理器中双击它仍然会在VS 2012中打开。
我读过 "Visual Studio 2012 doesn't convert vs2010 solution?" 并遵循了 建议“另存为...”解决方案文件。
仍然默认情况下它会在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
应用程序是一个特定的版本而不是“Microsoft Visual Studio版本选择器”。在 Windows 8 中:您可以通过“继续使用”来确定默认值:devenv "MyProject.sln" /upgrade
示例:
"%programfiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe" "D:\Source\MySolution.sln" /upgrade
请注意,这不会打开Visual Studio。另一种方法是在IDE中为您的解决方案文件选择“另存为”,然后覆盖或使用新名称保存解决方案。
devenv "MyProject.sln" /upgrade
命令之后,你还应该编辑 .sln 文件,参考 @Zac 的回答。 - Wei GuoMicrosoft 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 文件),即使通过右键单击“使用...打开”,也成功地将VS2012升级到了VS2013。
为了解决这个问题,我只需要修改.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对于一个类似的问题给出了一个类似但更简单的答案。他的步骤如下:
# Visual Studio 2013
与# Visual Studio 2012
。 - Marc Gravell