Wie kann ich mir diese beiden Konzepte vorstellen, wenn ich neu bei VS bin? Was ist der Unterschied?
103
Wie kann ich mir diese beiden Konzepte vorstellen, wenn ich neu bei VS bin? Was ist der Unterschied?
Eine Lösung ist ein Container für Projekte und verfolgt Abhängigkeiten zwischen Projekten.
Ich finde einige fehlende Informationen in den anderen Antworten (zumindest für Leute, die von anderen IDEs wie beispielsweise Eclipse stammen). 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, dass ein Projekt eine Ausgabe erzeugt : 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.
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 sie angemessen zu organisieren.
Ein bisschen kitschig, aber ich habe es spontan erfunden, also nimm es mit :)
quelle
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. (Das Dateimenü sagt "Projekt / Lösung öffnen", aber es öffnet wirklich Lösungen. Es gibt kein "Projekt schließen", nur "Lösung schließen", was genau ist.
In VS arbeiten Sie also immer innerhalb einer Lösung. Viele Lösungen enthalten nur ein Projekt, und neuere Entwickler betrachten sie wahrscheinlich als dasselbe. Sie können jedoch andere Projekte zu einer Lösung hinzufügen.
quelle
Für den Fall, dass sich jemand entscheidet, so weit nach unten zu scrollen ... Ich dachte, die MS-Dokumente haben die Unterschiede ziemlich gut beschrieben. Ich habe die relevanten Bits hier kopiert, eingefügt (und umformuliert):
Einer Lösung ist eine
.suo
Datei zugeordnet, in der Einstellungen, Einstellungen und Konfigurationsinformationen für jeden Benutzer gespeichert sind, der an dem Projekt gearbeitet hat.quelle
Eine Lösung kann viele Projekte haben.
Die Lösung kann auch die Abhängigkeiten zwischen den verschiedenen Projekten verwalten. Stellen Sie dabei sicher, dass jedes Projekt in der richtigen Reihenfolge erstellt wird, damit die endgültige Lösung funktioniert.
quelle
Ein Projekt enthält ausführbare Dateien und Bibliotheksdateien, aus denen eine Anwendung oder Komponente einer Anwendung besteht.
Eine Lösung ist ein Platzhalter für logisch verwandte Projekte, aus denen eine Anwendung besteht. Beispielsweise könnten Sie separate Projekte für die GUI Ihrer Anwendung, die Datenbankzugriffsschicht usw. haben. Die Projekte wären spezifische Abteilungen für die Funktionalität Ihres Programms, und die Lösung wäre der Schirm, der alle unter einer Anwendung vereint.
quelle
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 (gemeinsam genutzte DLLs usw.).
quelle
Eine Lösung ist eine lesbare Textdatei mit der Erweiterung
.sln
und einem strukturierten Inhalt, der die darin enthaltenen Projekte beschreibt . Ein Projekt ist eine lesbare XML- formatierte Textdatei, deren Erweiterung.vcxproj
ein strukturierter Inhalt gemäß dem XML-Schema ist und deren Hauptzweck darin besteht, die Auflistung der Dateinamen des Quellcodes und ihrer Abhängigkeiten oder Verweise auf die Quellcodes anderer Projekte zu enthalten.quelle
Weitere Informationen finden Sie unter https://docs.microsoft.com/en-us/visualstudio/ide/quickstart-projects-solutions
Wenn Sie aus einem Eclipse-Hintergrund stammen, würden Sie wahrscheinlich den Pfad eines Projekts erstellen und eine Abhängigkeit von einem anderen Projekt hinzufügen oder ein externes JAR hinzufügen. In VS können Sie dies in einem einzigen Container namens "Lösung" tun, in dem alle zugehörigen Projekte zusammengefasst sind.
Z.B. Angenommen, Sie sind eine Build- und Android- und iOS-App in Xamrin. Es gibt einige allgemeine Codes und Ressourcen, die in einem separaten Projekt enthalten sein können, und dann können Ihre Android- und iOS-Projekte von diesem gemeinsamen Code-Projekt abhängen. Sie könnten auch Projekte haben, um diese Projekte usw. zu testen.
quelle