912 votes

Dois-je ajouter les fichiers Visual Studio .suo et .user au contrôle des sources ?

Les solutions Visual Studio contiennent deux types de fichiers utilisateur cachés. L'un est la solution .suo qui est un fichier binaire. L'autre est le projet .user qui est un fichier texte. Quelles sont les données exactes que contiennent ces fichiers ?

Je me suis également demandé si je devais ajouter ces fichiers au contrôle de la source (Subversion dans mon cas). Si je n'ajoute pas ces fichiers et qu'un autre développeur vérifie la solution, Visual Studio créera-t-il automatiquement de nouveaux fichiers utilisateur ?

12 votes

Les fichiers .suo sont recréés automatiquement. C'est un bon moyen de "rafraîchir" vos paramètres par défaut en cas de problème.

5 votes

Meilleures pratiques pour les projets Subversion et Visual Studio est une question plus générale sur ce sujet précis. En outre, la réponse acceptée de celui-ci contient un lien vers la documentation officielle MSDN, qui décrit en détail quels fichiers / répertoires des solutions / projets VS doivent être ajoutés aux systèmes de contrôle de la source, et quelles parties doivent être ignorées.

3 votes

Pour *.suo, veuillez voir ici : msdn.microsoft.com/fr/us/library/bb165909.aspx

715voto

Fabio Ceconello Points 8662

Ces fichiers contiennent des configurations de préférences utilisateur qui sont en général spécifiques à votre machine, il est donc préférable de ne pas les mettre dans SCM. De plus, VS le modifiera presque à chaque fois que vous l'exécuterez, il sera donc toujours marqué par le SCM comme "modifié". Je n'inclus pas non plus, je suis dans un projet utilisant VS depuis 2 ans et je n'ai eu aucun problème à le faire. Le seul petit inconvénient est que les paramètres de débogage (chemin d'exécution, cible de déploiement, etc.) sont stockés dans l'un de ces fichiers (je ne sais pas lequel), donc si vous avez un standard pour eux, vous ne serez pas en mesure de le "publier" via SCM pour que les autres développeurs aient l'environnement de développement entier "prêt à l'emploi".

26 votes

Attention, le fichier suo stocke l'information si le projet est chargé/déchargé dans la solution.

5 votes

Je pense qu'il stocke les informations de débogage dans le fichier .user (au moins pour SQL Server Data Tools). De même, lorsque vous modifiez les paramètres dans l'onglet Debug, les changements ne sont pas toujours immédiatement persistés dans le fichier .user (la fermeture de la solution semble fonctionner, mais c'est un peu ennuyeux... ou la modification d'un autre paramètre stocké dans le fichier .sqlproj).

97 votes

Vous pouvez ouvrir les fichiers .user et .csproj dans n'importe quel éditeur de texte. Je viens d'essayer de copier-coller les paramètres de débogage pertinents du fichier .user dans le fichier .csproj, puis de supprimer le fichier .user. Le débogage a continué à fonctionner, en lisant avec bonheur les paramètres corrects depuis leur nouvel emplacement dans le fichier .csproj. Cela devrait permettre de valider les paramètres de débogage sans valider le fichier .user. Assurez-vous que vous les mettez dans la bonne configuration (debug, release, etc). Cela fonctionne sur ma machine ! =)

151voto

Steve Cooper Points 6637

Vous n'avez pas besoin de les ajouter : ils contiennent des paramètres par utilisateur, et les autres développeurs ne voudront pas de votre copie.

22 votes

Si vous travaillez seul sur plusieurs machines différentes, cela vaut-il la peine de les ajouter ?

35 votes

Je ne le ferais pas, car il peut être fragile aux différences de système inattendues ; par exemple, si vous travaillez sur x64 au travail et sur x86 à la maison, il pourrait s'étouffer sur "c : \program fichiers (x86)" et "c : \program fichiers". Je ne sais pas, mais je ne prendrais pas le risque.

2 votes

Bien qu'ils contiennent des informations spécifiques à l'utilisateur, mais les informations des fichiers qui sont nouvellement ajoutés via l'option (inclure dans le projet) sont également dans le fichier .csproj je pense, ce qui nécessite que les autres utilisateurs ajoutent manuellement toutes les ressources du projet nouvellement ajoutées. Si quelqu'un connaît une solution de contournement, veuillez le mentionner ici.

73voto

JXG Points 3877

D'autres ont expliqué pourquoi avoir le *.suo y *.user sous contrôle de la source n'est pas une bonne idée.

J'aimerais vous suggérer d'ajouter ces motifs au svn:ignore propriété pour 2 raisons :

  1. Pour que les autres développeurs ne se retrouvent pas avec les paramètres d'un développeur.
  2. Ainsi, lorsque vous consultez l'état, ou que vous validez ces fichiers n'encombreront pas la base de code et ne masqueront pas les nouveaux fichiers que vous devez ajouter.

0 votes

Où et comment le svn:ignore la propriété est fixée ?

0 votes

@PeterMortensen, voir cette question : stackoverflow.com/questions/86049/

0 votes

Mais il existe un cas (voir cette réponse ) pour ajouter le .user alors on peut choisir de ne pas ignorer seulement .suo - ou on peut ignorer .user de sorte qu'il faut une décision consciente pour les ajouter ? Je ne pense pas, le but de svn:ignore c'est marquer les choses pour lesquelles aucune décision consciente n'est nécessaire.

52voto

Thomas Points 715

Nous ne commettons pas le fichier binaire (*.suo), mais nous commettons le fichier .user. Le fichier .user contient par exemple les options de démarrage pour le débogage du projet. Vous pouvez trouver les options de démarrage dans les propriétés du projet dans l'onglet "Debug". Nous avons utilisé NUnit dans certains projets et configuré le nunit-gui.exe comme option de démarrage pour le projet. Sans le fichier .user, chaque membre de l'équipe devrait le configurer séparément.

J'espère que cela vous aidera.

4 votes

Je commence également à penser que cela devrait être le cas - commettre le fichier utilisateur afin que les développeurs d'une équipe utilisent les mêmes paramètres de débogage. S'ils le changent sur leur propre machine, c'est toujours bon, tant que la méthode standard est la version dans le contrôle de source.

1 votes

D'autres ont suggéré de ne pas le faire, mais je ne sais pas quels sont les risques. Peut-être parce que le fichier repo avec des paramètres moins précis écraserait la (meilleure) copie locale de l'utilisateur ? (Notre équipe utilise Mercurial, BTW).

3 votes

Microsoft conseille de ne pas ajouter le fichier .user au contrôle de la source.

26voto

Stephen Points 993

Comme j'ai trouvé cette question/réponse via Google en 2011, j'ai pensé prendre une seconde et ajouter le lien pour les fichiers *.SDF créés par Visual Studio 2010 à la liste des fichiers qui ne devraient probablement pas être ajoutés au contrôle de version (l'IDE les recréera). Comme je n'étais pas sûr qu'un fichier *.sdf puisse avoir une utilisation légitime ailleurs, je n'ai ignoré que le fichier spécifique [nom du projet].sdf de SVN.

Pourquoi l'assistant de conversion de Visual Studio 2010 crée-t-il un énorme fichier de base de données SDF ?

2 votes

Le fichier SDF est probablement un Base de données SQL Server Compact Edition .

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