2010-02-11 3 views
43

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

Я не могу найти способ изменения порядка, в котором перечисляются проекты. Я попытался удалить файл .suo, а также переместить вещи в файле .sln. Не было никакого эффекта.

Как я могу изменить порядок отображения моих проектов?

+2

У меня даже хуже ситуация. Время от времени VS 2008 решает переупорядочить мои проекты ... Это ужасно, только когда я использовал «свой заказ», он решает изменить и в решении с более чем 100 проектами, это кошмар, где-то нахожусь! – anthares

ответ

8

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

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

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

Нажмите F2 переименовать проект, а затем нажмите 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 в найти методы в файле.

+0

AFAIK исправлено в VS2010, я ожидаю, что не будет постоянного решения для VS2008. – Benjol

+1

Любая идея, как это сделать в VS2010, для меня это не очевидно ... –

+4

@Benjol определить «фиксированный»? всегда сортируется в алфавитном порядке? – Lucas

4

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 

(Если вы получили только несколько проектов, просто отсортировать его вручную)

7

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

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

+0

Это не имеет никакого отношения к VS2010 (оригинальный вопрос был о VS2008, но я просто пробовал это напрасно, надеюсь, что это сработает) –

10

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

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

2

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

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

Смежные вопросы