Est-il recommandé de valider un fichier .sln dans le contrôle de code source? Quand est-il approprié ou inapproprié de le faire?
Mise à jour Il y avait plusieurs points positifs dans les réponses. Merci pour les réponses!
Est-il recommandé de valider un fichier .sln dans le contrôle de code source? Quand est-il approprié ou inapproprié de le faire?
Mise à jour Il y avait plusieurs points positifs dans les réponses. Merci pour les réponses!
Réponses:
Je pense qu'il ressort clairement des autres réponses que les fichiers de solution sont utiles et doivent être validés, même s'ils ne sont pas utilisés pour les versions officielles. Ils sont pratiques pour quiconque utilise les fonctionnalités de Visual Studio telles que Go To Definition / Declaration.
Par défaut, ils ne contiennent pas de chemins absolus ou d'autres artefacts spécifiques à la machine. (Malheureusement, certains outils complémentaires ne gèrent pas correctement cette propriété, par exemple AMD CodeAnalyst.) Si vous prenez soin d'utiliser des chemins relatifs dans vos fichiers de projet (à la fois C ++ et C #), ils seront indépendants de la machine. aussi.
La question la plus utile est probablement la suivante: quels fichiers devez-vous exclure? Voici le contenu de mon fichier .gitignore pour mes projets VS 2008:
*.suo
*.user
*.ncb
Debug/
Release/
CodeAnalyst/
(La dernière entrée concerne uniquement le profileur AMD CodeAnalyst.)
Pour VS 2010, vous devez également exclure les éléments suivants:
ipch/
*.sdf
*.opensdf
Oui - je pense que c'est toujours approprié. Les paramètres spécifiques à l'utilisateur se trouvent dans d'autres fichiers.
Oui, vous devriez le faire. Un fichier de solution contient uniquement des informations sur la structure globale de votre solution. Les informations sont globales à la solution et sont probablement communes à tous les développeurs de votre projet.
Il ne contient aucun paramètre spécifique à l'utilisateur.
Vous devriez certainement l'avoir. Outre les raisons que d'autres personnes ont mentionnées, il est nécessaire de rendre possible la construction d'une étape de l'ensemble des projets.
Je suis généralement d'accord pour dire que les fichiers de solution doivent être archivés, cependant, dans l'entreprise pour laquelle je travaille, nous avons fait quelque chose de différent. Nous avons un référentiel assez volumineux et les développeurs travaillent de temps en temps sur différentes parties du système. Pour soutenir la façon dont nous travaillons, nous aurions soit un gros fichier de solution, soit plusieurs plus petits. Les deux ont quelques défauts et nécessitent un travail manuel de la part des développeurs. Pour éviter cela, nous avons créé un plug-in qui gère tout cela.
Le plug-in permet à chaque développeur d'extraire un sous-ensemble de l'arborescence des sources sur lequel travailler simplement en sélectionnant les projets pertinents dans le référentiel. Le plugin génère ensuite un fichier de solution et modifie les fichiers de projet à la volée pour la solution donnée. Il gère également les références. En d'autres termes, tout ce que le développeur a à faire est de sélectionner les projets appropriés, puis les fichiers nécessaires sont générés / modifiés. Cela nous permet également de personnaliser divers autres paramètres pour garantir les normes de l'entreprise.
De plus, nous utilisons le plug-in pour prendre en charge diverses politiques d'enregistrement, ce qui empêche généralement les utilisateurs de soumettre du code défectueux / non conforme au référentiel.
Oui, les choses que vous devriez commettre sont:
Les choses que vous ne devriez pas commettre sont:
En ce qui concerne les autres fichiers générés automatiquement, il existe un thread distinct .
Oui, cela devrait faire partie du contrôle de code source. Chaque fois que vous ajoutez / supprimez des projets de votre application, .sln serait mis à jour et il serait bon de l'avoir sous contrôle de code source. Cela vous permettrait de récupérer les versions de votre code d'application 2 et de faire directement une compilation (si nécessaire).
Oui, vous voulez toujours inclure le fichier .sln, il inclut les liens vers tous les projets qui sont dans la solution.
Nous le faisons parce que tout est synchronisé. Tous les projets nécessaires sont regroupés et personne n'a à craindre d'en manquer un. Notre serveur de build (Ant Hill Pro) utilise également le sln pour déterminer les projets à construire pour une version.
Le seul cas où vous envisageriez même de ne pas le stocker dans le contrôle de code source serait si vous aviez une grande solution avec de nombreux projets qui était en contrôle de code source, et que vous vouliez créer une petite solution avec certains des projets de la solution principale pour certains exigence transitoire privée.
Nous conservons les fichiers de solution ou dans le contrôle de version TFS. Mais comme la solution principale est vraiment volumineuse, la plupart des développeurs ont une solution personnelle contenant uniquement ce dont ils ont besoin. Le fichier de solution principal est principalement utilisé par le serveur de construction.
.slns est la seule chose avec laquelle nous n'avons pas eu de problèmes dans tfs!