在Visual Studio 2008中,决定解决方案文件夹中项目出现顺序的是什么?它不是按字母顺序排列,也不是构建顺序。
我找不到任何改变项目列表顺序的方法。我尝试删除我的.suo文件,以及在.sln文件中移动项目位置,但两者都没有任何影响。
我该如何改变项目显示顺序?
在Visual Studio 2008中,决定解决方案文件夹中项目出现顺序的是什么?它不是按字母顺序排列,也不是构建顺序。
我找不到任何改变项目列表顺序的方法。我尝试删除我的.suo文件,以及在.sln文件中移动项目位置,但两者都没有任何影响。
我该如何改变项目显示顺序?
已经在Connect.Microsoft.com上放置了反馈请求,因此您需要等待永久解决方案。
http://connect.microsoft.com/VisualStudio/feedback/details/468874/solution-explorer-project-sort-order(原始链接已被删除,现更换为Wayback Machine链接)
临时解决方法可用,但我认为并不够好。其中一个方法是:
按 F2 重命名项目,然后按 Enter ,不要更改名称。这将暂时对文件夹中的项目进行排序。
或使用http://solutionsorter.codeplex.com/来修改SLN以进行永久修复,如果您的解决方案文件夹没有嵌套(它破坏了我的解决方案)
但是,如果您关闭并重新打开解决方案,则此方法将无效。
如果您使用Resharper,可以按下快捷键CTRL+N查找解决方案中的文件,CTRL+F12查找文件中的方法。
很遗憾,VS2010强制要求项目按字母顺序排序。
也许将项目重命名并添加数字前缀(01、02、03等)以实现所需的顺序是唯一的解决方法,虽然这也不是理想的解决方案。
在任何文本编辑器中打开 .sln 文件。
按照您想要的任何顺序排列项目部分:
"Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "等等..."
...
EndProject
保存文件。 就是这样。 下次打开此解决方案时,项目将以该顺序显示。
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "etc..."
EndProject
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
dotnet sln add 命令可以为解决方案中的所有文件夹中的所有项目重新排序。
只需使用以下命令之一将至少一个项目添加到您的解决方案中:
dotnet sln $Solution add --solution-folder $SolutionFolder $projectPath
或者没有解决方案文件夹:
dotnet sln $Solution add --in-root $projectPath