web-dev-qa-db-fra.com

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

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

J'ai besoin d'identifier les fichiers à placer dans un référentiel Git. Avec le code source/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 fichiers corrects.

AJOUTÉE

Qu'en est-il des fichiers de macros personnels? J'ai macro de commutateur à clé Emacs , le .sln fichier ou .csproj fichier a cette macro?

58
prosseek

Vous devez valider le .sln et le .csproj, mais pas le .suo ou la .user des dossiers.

Vous pouvez ajouter ce qui suit à .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*
70
SLaks

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

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

SUO (options utilisateur de la solution) sont des fichiers de paramètres utilisateur. Complètement jetable, vous pouvez le 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.

N'incluez aucun 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.

42
Nix

Depuis MSDN:

Une solution (.sln) est une structure pour organiser des projets dans Visual Studio. Il exécute une fonction similaire aux fichiers du groupe de programmes Windows (.vbg) dans Visual Basic 6.0 et aux fichiers d'espace de travail du projet (.dsw) dans Visual C++ 6.0. La solution conserve les informations d'état des projets dans les fichiers .sln (texte, partagé) et .suo (options binaires, spécifiques à l'utilisateur)… [Source]

En outre, également à partir de MSDN:

Le fichier d'options utilisateur (.suo) de la solution est un fichier de stockage structuré ou composé stocké dans un format binaire. Vous enregistrez les informations utilisateur dans des flux avec 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 fichier dans VCS. Il s'agit d'un fichier spécifique à l'utilisateur.

14
user405725

Les fichiers SUO ont un objectif et je ne suis pas d'accord avec l'affirmation selon laquelle ils devraient 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 j'attrape un nouveau projet, il ne soit pas réglé par défaut sur 64 bits et sur la plate-forme appropriée. Le SUO contient les paramètres permettant de définir correctement ces paramètres par défaut.

L'inconvénient est que c'est un fichier binaire, donc à peu près chaque fois que vous ouvrez la solution et que vous faites quoi que ce soit, le fichier aura changé. En règle générale, le fichier est inférieur à 100 Ko, et sauf si vous savez que vous avez modifié quelque chose, je ne valide pas la modification.

3
GR Envoy