web-dev-qa-db-fra.com

Projet Visual Studio vs solution

Étant nouveau sur VS, comment puis-je penser à ces deux concepts, quelle est la différence?

92
bmw0128

Une solution est un conteneur pour les projets et suit les dépendances entre les projets.

67
pzr

Je trouve des informations manquantes dans les autres réponses (au moins pour les personnes qui viennent d'autres IDE comme, par exemple, Eclipse). Dire qu'une solution est un conteneur de projets n'est qu'une partie de la chose. La caractéristique conceptuelle d'un projet VS (ce qui détermine sa "granularité") est que n projet produit une sortie: généralement un exécutable ou une bibliothèque (dll). Donc, si vous allez coder trois exécutables qui utilisent du code associé, vous créerez une solution et au moins trois projets - probablement plus.

115
leonbloy

Juste pour trouver une métaphore ..

Une solution est comme une maison, un projet comme une pièce. Chaque pièce offre un élément de fonctionnalité tandis que la maison, un conteneur de pièces, fournit les moyens de relier les pièces entre elles et de les organiser de manière appropriée.

Un peu ringard mais je me suis réconcilié à la volée, alors restez avec moi :)

38
Cody C

Cela n'aide pas que Visual Studio semble rendre les choses plus confuses. "Nouveau projet" crée en fait une nouvelle SOLUTION contenant un projet. "Open Project" ouvre en fait une solution contenant un (ou plusieurs) projet. (Le menu du fichier dit "Ouvrir le projet/la solution" mais il s'agit vraiment d'ouvrir les solutions. Il n'y a pas de "Fermer le projet" seulement "Fermer la solution" qui est précis.

Ainsi, dans VS, vous travaillez toujours au sein d'une solution. De nombreuses solutions ne contiennent qu'un seul projet et les nouveaux développeurs sont susceptibles de les considérer comme la même chose. Cependant, vous pouvez ajouter d'autres projets dans une solution.

22
Chryses

Au cas où quelqu'un déciderait de faire défiler jusqu'à présent ... Je pensais que le MS docs a fait un très bon travail pour décrire les différences. J'ai copié (et reformulé) les bits pertinents ici:

Lorsque vous créez une application, une application, un site Web, une application Web, un script, un plug-in, etc. dans Visual Studio, vous démarrez avec un projet. Dans un sens logique, un projet contient tous les fichiers de code source, icônes, images, fichiers de données et tout ce qui sera compilé dans un programme exécutable ou un site Web, ou bien est nécessaire pour effectuer la compilation. Un projet contient également tous les paramètres du compilateur et d'autres fichiers de configuration pouvant être requis par divers services ou composants avec lesquels votre programme communiquera.

Vous n'avez pas besoin d'utiliser des solutions ou des projets si vous ne le souhaitez pas. Vous pouvez simplement ouvrir les fichiers dans Visual Studio et commencer à modifier votre code.

Au sens littéral, un projet est un fichier XML (.vbproj, .csproj, .vcxproj) qui définit une hiérarchie de dossiers virtuels ainsi que les chemins d'accès à tous les éléments qu'elle "contient" et à tous les paramètres de génération.

Dans Visual Studio, le fichier de projet est utilisé par l'Explorateur de solutions pour afficher le contenu et les paramètres du projet. Lorsque vous compilez votre projet, le moteur MSBuild consomme le fichier de projet pour créer l'exécutable. Vous pouvez également personnaliser des projets pour produire d'autres types de sortie.

Un projet est contenu, dans un sens logique et dans le système de fichiers, au sein d'une solution, qui peut contenir un ou plusieurs projets, ainsi que des informations de génération, des paramètres de fenêtre Visual Studio et tous les fichiers divers qui ne sont associés à aucun projet. Dans un sens littéral, la solution est un fichier texte avec son propre format unique; il n'est généralement pas destiné à être édité à la main.

Une solution a un .suo fichier qui stocke les paramètres, les préférences et les informations de configuration pour chaque utilisateur ayant travaillé sur le projet.

9
jrahhali

Une solution peut avoir plusieurs projets.

La solution peut également gérer la gestion des dépendances entre ses différents projets ... en s'assurant que chaque projet est construit dans l'ordre approprié pour que la solution finale fonctionne.

6
Justin Niessner

Un projet contient des fichiers exécutables et de bibliothèque qui composent une application ou un composant d'une application.

Une solution est un espace réservé pour des projets logiquement liés qui composent une application. Par exemple, vous pouvez avoir des projets distincts pour l'interface graphique de votre application, la couche d'accès à la base de données, etc. Les projets seraient des divisions spécifiques pour la fonctionnalité de votre programme, et la solution serait le parapluie les unifiant tous sous une seule application.

3
David

A solution est un fichier texte lisible dont l'extension est .sln et ayant un contenu structuré qui décrit les projets qu'il contient. Un projet est un fichier texte formaté lisible [~ # ~] [~ # ~] (- === -) dont l'extension est .vcxproj et ayant un contenu structuré selon son schéma XML, et dont le but principal est de contenir la liste des noms de fichiers des codes sources et leurs dépendances ou références aux codes sources d'autres projets.

2
typelogic

Les solutions sont des conteneurs pour les projets - vous pouvez également les utiliser pour organiser les éléments qui sont utilisés dans différents projets connexes (DLL partagées et autres).

2
Oded

Les solutions sont des conteneurs utilisés par Visual Studio pour organiser un ou plusieurs projets associés. Lorsque vous ouvrez une solution dans Visual Studio, elle charge automatiquement tous les projets qu'elle contient.

Lorsque vous créez un nouveau projet dans Visual Studio, il crée automatiquement une solution pour héberger le projet s'il n'y a pas de solution déjà ouverte.

Vous pouvez définir les dépendances des projets sur d'autres projets dans la solution. Le projet dépendant est généré après la création du projet dont il dépend.

Pour plus de détails, reportez-vous à --- https://docs.Microsoft.com/en-us/visualstudio/ide/quickstart-projects-solutions

Si vous venez d'un arrière-plan Eclipse, vous iriez probablement au chemin de génération d'un projet et ajouter une dépendance à un autre projet ou ajouter un pot externe. Dans VS, vous pouvez le faire dans un seul conteneur appelé solution où tous les projets associés sont regroupés.

Par exemple. Disons que vous êtes construit et Android et l'application iOS dans xamrin, il y aurait du code et des ressources communs qui pourraient aller dans un projet séparé, puis votre Android et les projets iOS peuvent dépendre de ce projet de code commun. Vous pouvez également avoir des projets pour tester ces projets, etc.

0
Aniket Thakur