Visual Studio解决scheme中的项目顺序

在Visual Studio 2008中,什么决定项目在解决scheme文件夹中的显示顺序? 这不是按字母顺序排列,也不是按顺序排列。

我找不到任何改变项目上市顺序的方法。 我尝试删除我的.suo文件,以及在.sln文件中移动的东西。 没有任何效果。

我怎样才能改变我的项目显示顺序?

Connect.Microsoft.com已经提供了一个反馈请求,所以您必须等待永久解决scheme。

http://connect.microsoft.com/VisualStudio/feedback/details/468874/solution-explorer-project-sort-order (用原来的Wayback Machine链接取代)

临时的解决方法是可用的,但不够好,我觉得。 其中之一是:

F2重命名项目,然后按Enter键而不更改名称。 这暂时sorting该文件夹中的项目。

(按照http://social.msdn.microsoft.com/Forums/en-US/vssetup/thread/79d46a69-386e-4ad8-b9cb-b00d4252495b/?prof=required

或者使用http://solutionsorter.codeplex.com/来改变SLN永久修复,; 如果你的解决scheme文件夹没有嵌套 (它吃了我的解决scheme)

但是,如果closures并打开解决scheme,这将不起作用。

如果使用Resharper,则可以按CTRL + N快捷键find解决scheme中的文件,并按CTRL + F12查找文件中的方法。

不幸的是,VS2010迫使项目按字母顺序sorting。

也许重命名项目通过添加一个数字前缀(01,02,03等)来实现所需的顺序是唯一的解决方法,虽然不是理想的。

在任何文本编辑器中取文件.sln。 订购部件
“项目(”{2150E333-8FDC-42A3-9474-1A3956D46DE8}“)=”等…“

EndProject

以任何你想要的顺序。 保存。 就这样。 下一次你打开这个解决scheme的时候,这些项目将会按照这个顺序。

Hacky替代方法:将这些行的部分复制到文本文件中。

Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "etc..." EndProject 

使用此F#脚本按字母顺序sorting(根据需要更改文件path):

 open System.IO let readlines p = File.ReadAllLines(p) let writelines p lines = File.WriteAllLines(p, lines) let startpos = @"Project(""{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"") = """.Length let getProj (s:string) = s.Substring(startpos, s.IndexOf('"', startpos) - startpos) let path = @"C:\Temp\sln.txt" path |> readlines |> Array.filter (fun s -> s.StartsWith("Project")) |> Array.map (fun s -> (getProj(s), s)) |> Array.sortBy fst |> Array.map snd |> Array.collect (fun s -> [|s;"EndProject"|]) |> writelines path 

(如果你只有几个项目,只需手工分类)

按照此解决scheme: https : //stackoverflow.com/a/21118705/835561

您可以使用解决scheme文件夹进行sorting,而不必担心会影响项目依赖性。 不知道2013年之前的工作情况如何,但我在2013年遇到了这个问题,并认为这可能会帮助其他人在我的情况。