57 votes

Ordre du projet dans Visual Studio Solution

Dans Visual Studio 2008, qu'est-ce qui détermine l'ordre dans lequel les projets apparaissent dans un dossier de solutions ? Ce n'est pas l'ordre alphabétique, ni l'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 .suo ainsi que de déplacer des éléments dans le fichier .sln fichier. Aucun des deux n'a eu d'effet.

Comment puis-je modifier l'ordre d'affichage de mes projets ?

5 votes

J'ai une situation encore pire. De temps en temps, VS 2008 décide de réordonner mes projets... C'est affreux, juste quand je suis habitué à "son ordre", il décide de changer et dans une solution avec plus de 100 projets, c'est un cauchemar de trouver quelque chose !

11voto

Sam Points 1339

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

La seule solution consiste peut-être à renommer les projets en ajoutant un préfixe numérique (01, 02, 03, etc.) pour obtenir l'ordre souhaité, mais ce n'est pas l'idéal non plus.

11voto

Jeeva S Points 1266

Une demande de retour d'information a déjà été envoyée à Connect.Microsoft.com. Vous devrez donc attendre la solution définitive.

http://connect.microsoft.com/VisualStudio/feedback/details/468874/solution-explorer-project-sort-order (remplacé par le lien de la Wayback Machine, l'original ayant été supprimé)

Il existe des solutions de contournement temporaires, mais elles ne sont pas suffisantes, à mon avis. L'une d'entre elles est la suivante :

Appuyez sur F2 pour renommer un projet, puis appuyez sur Enter sans changer le nom. Cela permet de trier temporairement les projets dans ce dossier.

(Conformément à 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 le SLN pour une fixation permanente si les dossiers de votre 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 CTRL + N pour trouver les fichiers en solution et CTRL + F12 pour trouver des méthodes dans le fichier.

0 votes

A priori, c'est corrigé dans VS2010, je pense qu'il n'y aura pas de solution permanente pour VS2008.

4 votes

@Benjol définir "fixe" ? toujours trié par ordre alphabétique ?

8voto

Prenez le fichier .sln dans n'importe quel éditeur de texte. Ordonnez les parties
" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "etc..."
...
Fin du projet

dans l'ordre que vous voulez. Enregistrez-le. C'est tout. La prochaine fois que vous ouvrirez cette solution, les projets seront dans CET ordre.

2 votes

Cela n'a pas d'effet dans VS2010 (la question originale concernait VS2008, mais j'ai essayé dans l'espoir vain que cela fonctionne).

4voto

Benjol Points 16334

Alternative astucieuse : Copiez la section contenant 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 modifiant le chemin du fichier si nécessaire) :

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-les à la main).

2voto

Edyn Points 448

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

Vous pouvez utiliser les Solution Folders pour effectuer votre tri sans vous soucier de l'impact sur les dépendances du projet. Je ne sais pas si cela fonctionne bien avant 2013, mais je suis tombé sur cette question en cherchant pour 2013 et j'ai pensé que cela pourrait aider d'autres personnes dans ma situation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X