63 votes

Pourquoi y a-t-il des fichiers .sln, .suo et .csproj ?

J'ai commencé à utiliser Visual Studio 2010. Après avoir terminé le programme C#, je vois qu'il y a .sln et .suo dans le répertoire racine du projet, et un fichier .csproj dans le sous-répertoire. A quoi servent ces fichiers ?

J'ai besoin d'identifier les fichiers à mettre dans un dépôt Git. Avec le code source et les documents que je crée, je suppose que ces trois fichiers sont les seuls dont je dois m'occuper. Cependant, je ne suis pas sûr de suivre les bons fichiers.

ADDED

Et les fichiers macro personnels ? J'ai le Macro de commutation des touches Emacs Est-ce que le .sln ou .csproj Le fichier a cette macro ?

75voto

SLaks Points 391154

Vous devez valider le .sln et le .csproj mais pas le .suo ou le .user des fichiers.

Vous pouvez ajouter les éléments suivants à .gitignore :

#ignore thumbnails created by windows
Thumbs.db
#Ignore files build by Visual Studio
*.obj
*.exe
*.pdb
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
*.log
[Bb]in
[Dd]ebug*/
*.lib
*.sbr
obj/
[Rr]elease*/
_ReSharper*/
[Tt]est[Rr]esult*

44voto

Nix Points 22944

SLN (Solution) sont les fichiers de solution. Ils stockent des informations sur la collection de projets qui composent ce que vous développez. Ils contiennent des projets, des paramètres de contrôle de source, ou toute autre chose de niveau global.

CSProj (fichier de projet) sont les projets de code réels (bibliothèques C#, services WCF, etc). Il stocke les informations au niveau du projet. Il enveloppe toutes les références pertinentes, Classess, etc.

SUO (solutions user options) sont des fichiers de paramètres utilisateur. Totalement jetables, vous pouvez les supprimer et la chose la plus courante que vous perdrez sont les points d'arrêt.


Poussez tout sauf les fichiers de paramètres SUO.

Ne pas inclure de répertoire bin, debug, obj. Les seules DLL (ou objets compilés/générés) que vous devez inclure sont celles qui sont externes à votre application.

15voto

De MSDN :

A solution (.sln) est une structure permettant d'organiser les projets dans Visual Studio. Elle remplit une fonction similaire aux fichiers Windows Program Group (.vbg) de Visual Basic 6.0 et aux fichiers project workspace (.dsw) de Visual C++ 6.0. La solution maintient les informations d'état des projets dans des fichiers .sln (texte, partagé) et .suo (binaire, options de solution spécifiques à l'utilisateur) [Source]

En outre, également à partir de MSDN :

Le site fichier des options de l'utilisateur de la solution (.suo) est un fichier de stockage structuré, ou fichier composé, stocké dans un format binaire. Vous enregistrez les informations de l'utilisateur dans des flux, le nom du flux étant la clé qui sera utilisée pour identifier les informations dans le fichier .suo [Source]

Vous n'avez pas besoin de mettre .suo dans VCS. C'est un fichier propre à l'utilisateur.

3voto

GR Envoy Points 649

Les fichiers SUO ont une utilité et je ne suis pas d'accord avec l'affirmation selon laquelle ils doivent toujours être ignorés. Je ne les ignore pas et, en règle générale, je les ajoute à notre référentiel SVN. Mes projets n'utilisent pas toujours les valeurs par défaut de la solution pour le projet de démarrage ou la plate-forme. Je trouve ennuyeux que si je saisis un nouveau projet, il n'utilise pas par défaut 64 bits et la bonne plate-forme. Le SUO contient les paramètres permettant de définir ces valeurs par défaut correctement.

L'inconvénient est qu'il s'agit d'un fichier binaire, donc à chaque fois que vous ouvrez la solution et que vous faites quelque chose, le fichier a changé. En général, le fichier fait moins de 100k, et à moins que vous ne sachiez que vous avez changé quelque chose, je ne valide pas la modification.

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