Projekt Visual Studio a rozwiązanie

Odpowiedzi:

70

Rozwiązanie jest kontenerem dla projektów i śledzi zależności między projektami.

pzr
źródło
128

W innych odpowiedziach znajduję pewne brakujące informacje (przynajmniej dla osób pochodzących z innych IDE, jak na przykład Eclipse). Stwierdzenie, że rozwiązanie jest pojemnikiem na projekty, to tylko część sprawy. Koncepcyjną cechą projektu VS (co decyduje o jego „ziarnistości”) jest to, że jeden projekt generuje jedno wyjście : zazwyczaj plik wykonywalny lub bibliotekę (dll). Tak więc, jeśli zamierzasz zakodować trzy pliki wykonywalne, które używają powiązanego kodu, utworzysz jedno rozwiązanie i co najmniej trzy projekty - prawdopodobnie więcej.

leonbloy
źródło
2
Nie zapomnij o projektach współdzielonego kodu, które można dołączyć bez tworzenia własnego zestawu.
AyCe
43

Żeby wymyślić metaforę ...

Rozwiązanie jest jak dom, projekt jak pokój. Każde pomieszczenie zapewnia funkcjonalność, a dom, kontener pomieszczeń, zapewnia możliwość połączenia ze sobą pomieszczeń i odpowiedniego ich uporządkowania.

Trochę banalne, ale nadrobiłem to w locie, więc wytrzymaj ze mną :)

Cody C.
źródło
26

Nie pomaga to, że Visual Studio wydaje się bardziej zagmatwać. „Nowy projekt” w rzeczywistości tworzy nowe ROZWIĄZANIE zawierające projekt. „Open Project” w rzeczywistości otwiera rozwiązanie zawierające jeden (lub wiele) projektów. (W menu pliku jest napisane „Otwórz projekt / rozwiązanie”, ale tak naprawdę jest to otwieranie rozwiązań. Nie ma opcji „Zamknij projekt” tylko „Zamknij rozwiązanie”, które jest dokładne.

Tak więc w VS zawsze pracujesz nad rozwiązaniem. Wiele rozwiązań zawiera tylko jeden projekt, a nowi programiści prawdopodobnie będą myśleć o nich jako o tym samym. Możesz jednak dodać inne projekty do rozwiązania.

Chryses
źródło
Jaki jest sens posiadania wielu projektów w jednym rozwiązaniu? Nie rozumiem tego ...
Liga
12

Na wypadek, gdyby ktoś zdecydował się przewinąć tak daleko ... Myślałem, że doktorzy stwardnienia rozsianego wykonali całkiem dobrą robotę opisując różnice. Skopiowałem (i przeformułowałem) odpowiednie bity tutaj:

Podczas tworzenia aplikacji, aplikacji, witryny sieci Web, aplikacji sieci Web, skryptu, wtyczki itp. W programie Visual Studio zaczynasz od projektu. W sensie logicznym projekt zawiera wszystkie pliki z kodem źródłowym, ikony, obrazy, pliki danych i wszystko inne, co zostanie wkompilowane w program wykonywalny lub witrynę internetową lub będzie potrzebne do wykonania kompilacji. Projekt zawiera również wszystkie ustawienia kompilatora i inne pliki konfiguracyjne, które mogą być potrzebne różnym usługom lub komponentom, z którymi program będzie się komunikował.

Nie musisz korzystać z rozwiązań ani projektów, jeśli nie chcesz. Możesz po prostu otworzyć pliki w programie Visual Studio i rozpocząć edytowanie kodu.

W sensie dosłownym, projekt jest plik XML ( .vbproj, .csproj, .vcxproj), która określa hierarchię folderów wirtualnych wraz ze ścieżkami do wszystkich elementów to „zawiera” i wszystkie ustawienia kompilacji.

W programie Visual Studio plik projektu jest używany przez Eksplorator rozwiązań do wyświetlania zawartości i ustawień projektu. Podczas kompilowania projektu aparat MSBuild zużywa plik projektu do utworzenia pliku wykonywalnego. Możesz także dostosować projekty do innych rodzajów wydruków.

Projekt jest zawarty, w sensie logicznym i w systemie plików, w rozwiązaniu, które może zawierać jeden lub więcej projektów, wraz z informacjami o kompilacji, ustawieniami okna programu Visual Studio i wszelkimi różnymi plikami, które nie są skojarzone z żadnym projektem. W sensie dosłownym rozwiązaniem jest plik tekstowy z własnym unikalnym formatem; generalnie nie jest przeznaczony do ręcznej edycji.

Rozwiązanie ma powiązany .suoplik, który przechowuje ustawienia, preferencje i informacje konfiguracyjne dla każdego użytkownika, który pracował nad projektem.

jrahhali
źródło
7

Rozwiązanie może mieć wiele projektów.

Rozwiązanie może również zarządzać zależnościami między różnymi projektami ... upewniając się, że każdy projekt zostanie zbudowany w odpowiedniej kolejności, aby końcowe rozwiązanie działało.

Justin Niessner
źródło
3

Projekt zawiera pliki wykonywalne i biblioteki, które tworzą aplikację lub składnik aplikacji.

Rozwiązanie to element zastępczy dla projektów powiązanych logicznie, które składają się na aplikację. Na przykład możesz mieć oddzielne projekty dla interfejsu GUI aplikacji, warstwy dostępu do bazy danych i tak dalej. Projekty byłyby określonymi podziałami dla funkcjonalności twojego programu, a rozwiązaniem byłby parasol łączący je wszystkie w jednej aplikacji.

David
źródło
2

Rozwiązania to kontenery dla projektów - można ich również używać do organizowania elementów, które są używane w różnych powiązanych projektach (współdzielone biblioteki DLL itp.).

Oded
źródło
2

Rozwiązanie jest czytelny plik tekstowy, którego rozszerzenie .sln, o strukturze treść opisującą projekty , że zawiera. Projektu jest czytelny XML sformatowany plik tekstowy, którego rozszerzenie .vcxproj, o strukturze zawartość zgodnie z jego schematu XML, a którego głównym celem jest zawierać listę kodów źródłowych nazw plików i ich zależności i odniesień do kodów źródłowych inny projekt, jak również.

trueadjustr
źródło
0

Rozwiązania to kontenery używane przez program Visual Studio do organizowania co najmniej jednego powiązanego projektu. Po otwarciu rozwiązania w programie Visual Studio automatycznie załaduje wszystkie zawarte w nim projekty.

Podczas tworzenia nowego projektu w programie Visual Studio automatycznie tworzy rozwiązanie do przechowywania projektu, jeśli nie ma już otwartego rozwiązania.

Możesz ustawić zależności projektów od innych projektów w rozwiązaniu. Projekt zależny jest budowany po zbudowaniu projektu, od którego jest zależny.

Aby uzyskać więcej informacji, zobacz - https://docs.microsoft.com/en-us/visualstudio/ide/quickstart-projects-solutions

Jeśli jesteś z tła Eclipse, prawdopodobnie udałbyś się do ścieżki budowania projektu i dodania zależności od innego projektu lub dodania zewnętrznego jar. W VS możesz to zrobić w jednym kontenerze zwanym rozwiązaniem, w którym wszystkie powiązane projekty są zgrupowane razem.

Na przykład. Załóżmy, że jesteś kompilacją i aplikacją na Androida i iOS w Xamrin, byłby pewien wspólny kod i zasoby, które mogłyby trafić do osobnego projektu, a projekty dla Androida i iOS mogą zależeć od tego wspólnego projektu kodu. Możesz także mieć projekty do testowania tych projektów itp.

Aniket Thakur
źródło