26

对于.sln.csproj之类的扩展,默认应用程序是Microsoft Visual Studio 版本选择器。我安装了两个版本,2010 SP1 和 2012 RC。这个应用程序将如何决定启动哪个 VS?

我会说它是这样工作的:

  1. 如果它在给定文件中找到任何提示应该使用哪个版本,那么它会使用它。例如,在.sln文件的顶部有这样的内容,因此版本选择器可以决定:
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2010
  1. 如果它没有找到任何提示,它将使用后来安装的任何版本(在我的情况下,我在我的 PC 上已经安装了 2012 之后重新安装了 2010 SP1,现在我认为 VS2010 比 2012 更频繁地打开,但我不是 100% 确定)。

这是我的感觉,但确切的规则是什么?

4

3 回答 3

36

文件头中有一些版本信息。否则,文件资源管理器将无法在 .sln 文件上显示带有数字的不同文档图标:

VS2008 VS2010 VS2012 VS2013 VS2015 VS2017 VS2019 VS2022 代表VS版本2008/2010/2012/2013/2015/2017/2019/2022的.sln文件

如果您使用记事本或其他不保留 UTF-8 签名的文本编辑器编辑 .sln 文件,图标上的这个数字会消失(参见Paul Groke 的评论)。在这种情况下,版本选择器也无法选择正确的版本,并且您无法从文件资源管理器中打开它。您可以专门从 Visual Studio 中打开它并保存 .sln 文件以修复它。有关此问题的更多信息,请参阅内容。

于 2012-09-10T13:37:18.897 回答
4

.sln 文件必须是 UTF-8-BOM 文件,并且必须像这样开始:

[blank line]
Microsoft Visual Studio Solution File, Format Version XX.XX[XXX...]
[description]

例如VS 2012 或VS 2017 [description]# Visual Studio Express 2012 for Windows Desktop# Visual Studio 15

第二行区分大小写,但第三行 ( description) 不区分大小写。如果缺少,则 Selector 似乎启动了最新的 VS。

VisualStudioVersion条目被忽略。

但是,要显示正确的文件图标,[description]必须准确且区分大小写。

于 2018-07-15T00:29:36.863 回答
1

在正确的 Visual Studio 版本中打开您的解决方案。单击以选择解决方案。单击文件 --> 保存 xxx.sln。

于 2020-02-27T15:27:51.310 回答