web-dev-qa-db-fra.com

Ordre de projet dans la solution Visual Studio

Dans Visual Studio 2008, qu'est-ce qui détermine l'ordre dans lequel les projets apparaissent dans un dossier de solution? Ce n'est pas un ordre alphabétique, ni un ordre de construction.

Je ne trouve aucun moyen de modifier l'ordre dans lequel les projets sont répertoriés. J'ai essayé de supprimer mon fichier . Suo , ainsi que de déplacer des éléments dans le . Sln fichier. Aucun n'a eu d'effet.

Comment puis-je changer l'ordre dans lequel mes projets sont affichés?

54
Kent Boogaart

Une demande de rétroaction a déjà été placée sur Connect.Microsoft.com, vous devrez donc attendre la solution permanente.

http://connect.Microsoft.com/VisualStudio/feedback/details/468874/solution-Explorer-project-sort-order (remplacé par le lien Wayback Machine car l'original a été supprimé)

Des solutions de contournement temporaires sont disponibles mais pas assez bonnes je pense. L'un d'eux est:

Presse F2 pour renommer un projet, puis appuyez sur Enter sans changer le nom. Cela trie temporairement les projets dans ce dossier.

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

Ou utilisez http://solutionsorter.codeplex.com/ pour modifier SLN pour un correctif permanent si vos dossiers de solution ne sont pas imbriqués (il a mangé ma solution)

Mais cela ne fonctionnera pas si vous fermez et ouvrez la solution.

Si vous utilisez Resharper, vous pouvez appuyer sur le raccourci CTRLN pour trouver des fichiers en solution et CTRLF12 pour trouver les méthodes dans le fichier.

9
Jeeva Subburaj

Malheureusement, VS2010 oblige les projets à être triés par ordre alphabétique.

Peut-être que renommer les projets en ajoutant un préfixe numérique (01, 02, 03, etc.) pour atteindre l'ordre souhaité est la seule solution de contournement, mais pas idéale non plus.

11
Sam

Prenez le fichier .sln dans n'importe quel éditeur de texte. Commandez les pièces
"Projet (" {2150E333-8FDC-42A3-9474-1A3956D46DE8} ") =" etc ... "
...
EndProject

dans l'ordre que vous souhaitez. Sauvegarde le. C'est tout. La prochaine fois que vous ouvrirez cette solution, les projets seront dans cet ordre.

9
Leonid Sternberg

Alternative hacky: Copiez la section avec ces lignes dans un fichier texte.

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

Utilisez ce script F # pour le trier par ordre alphabétique (en changeant le chemin du fichier selon les besoins):

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

(Si vous n'avez que quelques projets, triez-le simplement à la main)

4
Benjol

Par cette solution: https://stackoverflow.com/a/21118705/835561

Vous pouvez utiliser les dossiers de solutions pour effectuer votre tri sans vous soucier de ce qui affecte les dépendances du projet. Je ne sais pas si cela fonctionne bien avant 2013, mais je suis tombé sur cette question à la recherche de 2013 et j'ai pensé que cela pourrait aider les autres dans ma situation.

2
Edyn