wake-up-neo.com

Visual Studio-Projekt vs. Lösung

Wie kann ich mir diese beiden Konzepte vorstellen, was ist der Unterschied, wenn ich neu bei VS bin?

92
bmw0128

Eine Lösung ist ein Container für Projekte und verfolgt Abhängigkeiten zwischen Projekten.

67
pzr

Ich finde einige fehlende Informationen in den anderen Antworten (zumindest für Personen, die aus anderen IDEs stammen, z. B. Eclipse). Zu sagen, dass eine Lösung ein Container für Projekte ist, ist nur ein Teil der Sache. Das konzeptionelle Merkmal eines VS-Projekts (was seine "Granularität" bestimmt) ist: ein Projekt erzeugt eine Ausgabe: normalerweise eine ausführbare Datei oder eine Bibliothek (DLL). Wenn Sie also drei ausführbare Dateien codieren, die verwandten Code verwenden, erstellen Sie eine Lösung und mindestens drei Projekte - wahrscheinlich mehr.

115
leonbloy

Nur um eine Metapher zu finden ..

Eine Lösung ist wie ein Haus, ein Projekt wie ein Raum. Jeder Raum bietet ein Stück Funktionalität, während das Haus, ein Container mit Räumen, die Möglichkeit bietet, die Räume miteinander zu verbinden und entsprechend zu organisieren.

Irgendwie kitschig, aber ich habe es mir spontan ausgedacht, also trag es mit mir :)

38
Cody C

Es hilft nicht, dass Visual Studio die Dinge verwirrender zu machen scheint. "Neues Projekt" erstellt tatsächlich eine neue LÖSUNG, die ein Projekt enthält. "Projekt öffnen" öffnet tatsächlich eine Lösung, die ein (oder mehrere) Projekte enthält. (Im Dateimenü wird "Projekt/Projektmappe öffnen" angezeigt, es werden jedoch tatsächlich Projektmappen geöffnet. Es gibt kein "Projekt schließen", sondern nur "Projektmappe schließen", was korrekt ist.

In VS arbeiten Sie also immer innerhalb einer Lösung. Viele Lösungen enthalten nur ein Projekt, und neuere Entwickler werden sie wahrscheinlich als dasselbe ansehen. Sie können jedoch andere Projekte zu einer Lösung hinzufügen.

22
Chryses

Für den Fall, dass sich jemand entscheidet, so weit nach unten zu scrollen ... Ich dachte, die MS docs haben die Unterschiede ziemlich gut beschrieben. Ich habe die relevanten Bits hier eingefügt (und umformuliert):

Wenn Sie in Visual Studio eine App, eine Anwendung, eine Website, eine Webanwendung, ein Skript, ein Plug-in usw. erstellen, beginnen Sie mit einem Projekt. Ein Projekt enthält logischerweise alle Quellcodedateien, Symbole, Bilder, Datendateien und alle anderen Elemente, die zu einem ausführbaren Programm oder einer ausführbaren Website kompiliert werden oder für die Kompilierung erforderlich sind. Ein Projekt enthält auch alle Compiler-Einstellungen und andere Konfigurationsdateien, die von verschiedenen Diensten oder Komponenten benötigt werden, mit denen Ihr Programm kommunizieren wird.

Sie müssen keine Lösungen oder Projekte verwenden, wenn Sie nicht möchten. Sie können die Dateien einfach in Visual Studio öffnen und den Code bearbeiten.

Ein Projekt ist im wahrsten Sinne des Wortes eine XML-Datei (.vbproj, .csproj, .vcxproj), der eine Hierarchie virtueller Ordner zusammen mit Pfaden zu allen darin enthaltenen Elementen und allen Build-Einstellungen definiert.

In Visual Studio wird die Projektdatei vom Projektmappen-Explorer zum Anzeigen der Projektinhalte und -einstellungen verwendet. Wenn Sie Ihr Projekt kompilieren, verwendet das MSBuild-Modul die Projektdatei, um die ausführbare Datei zu erstellen. Sie können Projekte auch anpassen, um andere Ausgabearten zu erzeugen.

Ein Projekt ist in logischer Hinsicht und im Dateisystem in einer Projektmappe enthalten, die ein oder mehrere Projekte sowie Build-Informationen, Visual Studio-Fenstereinstellungen und sonstige Dateien enthalten kann, die keinem Projekt zugeordnet sind. Im wahrsten Sinne des Wortes ist die Lösung eine Textdatei mit einem eigenen Format. Es ist in der Regel nicht für die manuelle Bearbeitung vorgesehen.

Eine Lösung hat ein .suo Datei, in der Einstellungen, Voreinstellungen und Konfigurationsinformationen für jeden Benutzer gespeichert sind, der an dem Projekt gearbeitet hat.

9
jrahhali

Eine Lösung kann viele Projekte haben.

Die Lösung kann auch die Abhängigkeiten zwischen den verschiedenen Projekten verwalten. Stellen Sie sicher, dass jedes Projekt in der richtigen Reihenfolge erstellt wird, damit die endgültige Lösung funktioniert.

6
Justin Niessner

Ein Projekt enthält ausführbare Dateien und Bibliotheksdateien, aus denen eine Anwendung oder eine Komponente einer Anwendung besteht.

Eine Lösung ist ein Platzhalter für logisch zusammengehörige Projekte, aus denen eine Anwendung besteht. Beispielsweise könnten Sie separate Projekte für die GUI Ihrer Anwendung, die Datenbankzugriffsebene usw. haben. Die Projekte wären spezifische Bereiche für die Funktionalität Ihres Programms, und die Lösung wäre die Zusammenfassung aller Projekte unter einer Anwendung.

3
David

A Lösung ist eine lesbare Textdatei mit der Erweiterung .sln und mit einem strukturierten Inhalt, der die darin enthaltenen Projekte beschreibt. Ein Projekt ist eine lesbare [~ # ~] xml [~ # ~] formatierte Textdatei mit der Erweiterung .vcxproj und einen strukturierten Inhalt gemäß seinem XML-Schema haben, und dessen Hauptzweck darin besteht, die Auflistung der Quellcode-Dateinamen und deren Abhängigkeiten oder Verweise auf die Quellcodes anderer Projekte zu enthalten.

2
typelogic

Lösungen sind Container für Projekte. Sie können sie auch zum Organisieren von Elementen verwenden, die für verschiedene verwandte Projekte verwendet werden (freigegebene DLLs und dergleichen).

2
Oded

Lösungen sind Container, die von Visual Studio zum Organisieren eines oder mehrerer verwandter Projekte verwendet werden. Wenn Sie eine Projektmappe in Visual Studio öffnen, werden automatisch alle darin enthaltenen Projekte geladen.

Wenn Sie ein neues Projekt in Visual Studio erstellen, wird automatisch eine Projektmappe erstellt, in der das Projekt gespeichert wird, sofern noch keine Projektmappe geöffnet ist.

Sie können Abhängigkeiten von Projekten zu anderen Projekten in der Projektmappe festlegen. Das abhängige Projekt wird erstellt, nachdem das Projekt erstellt wurde, von dem es abhängt.

Weitere Informationen finden Sie unter - https://docs.Microsoft.com/en-us/visualstudio/ide/quickstart-projects-solutions

Wenn Sie einen Eclipse-Hintergrund haben, gehen Sie wahrscheinlich zum Erstellen eines Projektpfads und fügen eine Abhängigkeit zu einem anderen Projekt hinzu oder fügen eine externe JAR hinzu. In VS können Sie dies in einem einzigen Container namens "Lösung" tun, in dem alle zugehörigen Projekte zusammengefasst sind.

Z.B. Nehmen wir an, Sie erstellen und Android und iOS-App in xamrin, es gäbe einige gängige Codes und Ressourcen, die in einem separaten Projekt gespeichert werden könnten und dann Ihre Android und iOS-Projekte können von diesem allgemeinen Code-Projekt abhängen. Sie können auch Projekte zum Testen dieser Projekte usw. haben.

0
Aniket Thakur