Порядок проектов в решении Visual Studio

в Visual Studio 2008, что определяет порядок, в котором проекты появляются в папке решения? Это не алфавитный порядок, и не порядок построения.

Я не могу найти способ изменить порядок, в котором перечислены проекты. Я попытался удалить мой .СУО!--4--> файл, а также перемещение вещей в .sln. Не было никакого эффекта.

как я могу изменить порядок, в котором мои проекты показывали?

5 ответов


запрос обратной связи уже размещен на Connect.Microsoft.com Итак, вам придется ждать окончательного решения.

http://connect.microsoft.com/VisualStudio/feedback/details/468874/solution-explorer-project-sort-order (заменено на ссылку Wayback Machine, поскольку оригинал был удален)

временные обходные пути, но не достаточно хорошо я себя чувствую. Один из них:--1-->

пресс F2 переименовать a проект, затем нажмите Enter без изменения имени. Это временно сортирует проекты в этой папке.

(согласно http://social.msdn.microsoft.com/Forums/en-US/vssetup/thread/79d46a69-386e-4ad8-b9cb-b00d4252495b/?prof=required)

или использовать http://solutionsorter.codeplex.com/ изменить SLN для постоянного исправления если ваши папки решений не являются вложенными (он съел мой решение)

но это не сработает, если вы закроете и откроете решение.

Если вы используете Resharper, вы можете нажать короткий путь CTRL + N чтобы выяснить, файлы в решении и CTRL + F12 to узнайте способы в файле.


к сожалению, VS2010 заставляет проекты сортироваться по алфавиту.

возможно, переименование проектов путем добавления числового префикса (01, 02, 03 и т. д.) Для достижения желаемого порядка является единственным обходным путем, хотя и не идеальным.


принять файл .sln в любом текстовом редакторе. Закажите детали
" Проект ("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "etc..."
...
EndProject

в любом порядке, вы хотите. Сохранить его. Вот и все. В следующий раз, когда вы откроете это решение, проекты будут в этом порядке.


Hacky alternative: скопируйте раздел с этими строками в текстовый файл.

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

используйте этот скрипт F# для сортировки в алфавитном порядке (при необходимости измените путь к файлу):

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

(если у вас только несколько проектов, просто рукой)


в этом решении:https://stackoverflow.com/a/21118705/835561

вы можете использовать папки решений для сортировки, не беспокоясь о том, что это влияет на зависимости проекта. Не уверен, насколько хорошо это работает до 2013 года, но я столкнулся с этим вопросом в поисках 2013 года и подумал, что это может помочь другим в моей ситуации.