जवाबों:
मुझे अन्य उत्तरों में कुछ गुम जानकारी मिलती है (कम से कम उन लोगों के लिए जो अन्य आईडीई से आते हैं, जैसे, कहते हैं कि ग्रहण)। यह कहने के लिए कि एक समाधान परियोजनाओं के लिए एक कंटेनर है, इस चीज का केवल एक हिस्सा है। VS प्रोजेक्ट की वैचारिक विशेषता (जो इसकी 'ग्रैन्युलैरिटी' निर्धारित करती है) यह है कि एक प्रोजेक्ट एक आउटपुट उत्पन्न करता है : आमतौर पर एक निष्पादन योग्य या एक लाइब्रेरी (dll)। इसलिए, यदि आप तीन निष्पादकों को कोड करने जा रहे हैं जो संबंधित कोड का उपयोग करते हैं, तो आप एक समाधान बनाएंगे और कम से कम तीन परियोजनाएं - शायद अधिक।
बस एक रूपक के साथ आने के लिए ..
एक समाधान एक घर की तरह है, एक कमरे की तरह एक परियोजना है। प्रत्येक कमरा कार्यक्षमता का एक टुकड़ा प्रदान करता है जबकि घर, कमरों का एक कंटेनर, कमरों को एक साथ जोड़ने और उन्हें उचित रूप से व्यवस्थित करने के लिए साधन प्रदान करता है।
मकई की तरह लेकिन मैं इसे मक्खी पर बनाया, तो मेरे साथ सहन :)
यह मदद नहीं करता है कि दृश्य स्टूडियो चीजों को और अधिक भ्रमित करने के लिए लगता है। "नई परियोजना" वास्तव में एक परियोजना से युक्त एक नया समाधान बनाता है। "ओपन प्रोजेक्ट" वास्तव में एक (या कई) परियोजना वाले समाधान को खोलता है। (फ़ाइल मेनू "ओपन प्रोजेक्ट / सॉल्यूशन" कहता है, लेकिन यह वास्तव में समाधान खोल रहा है। कोई "क्लोज प्रोजेक्ट" केवल "क्लोज सॉल्यूशन" नहीं है, जो सटीक है।
तो, वीएस में आप हमेशा एक समाधान के भीतर काम कर रहे हैं। कई समाधानों में केवल एक परियोजना होती है और नए डेवलपर्स को उनके बारे में एक ही बात सोचने की संभावना होती है। हालाँकि आप अन्य परियोजनाओं को एक समाधान में जोड़ सकते हैं।
मामले में किसी ने भी इसे नीचे स्क्रॉल करने का फैसला किया ... मुझे लगा कि एमएस डॉक्स ने मतभेदों का वर्णन करने में बहुत अच्छा काम किया है। मैंने यहां प्रासंगिक बिट्स को कॉपी किया है (और rephrased):
जब आप विज़ुअल स्टूडियो में एक ऐप, एप्लिकेशन, वेबसाइट, वेब ऐप, स्क्रिप्ट, प्लग-इन आदि बनाते हैं, तो आप एक प्रोजेक्ट के साथ शुरू करते हैं। एक तार्किक अर्थ में, एक परियोजना में सभी स्रोत कोड फाइलें, आइकन, चित्र, डेटा फाइलें और कुछ और होते हैं जिन्हें एक निष्पादन योग्य कार्यक्रम या वेब साइट में संकलित किया जाएगा, या संकलन करने के लिए किसी अन्य की आवश्यकता होती है। एक परियोजना में सभी संकलक सेटिंग्स और अन्य कॉन्फ़िगरेशन फाइलें भी शामिल हैं जिन्हें विभिन्न सेवाओं या घटकों द्वारा आवश्यक हो सकता है जो आपके कार्यक्रम के साथ संवाद करेंगे।
यदि आप नहीं चाहते हैं तो आपको समाधान या परियोजनाओं का उपयोग करने की आवश्यकता नहीं है। आप बस विजुअल स्टूडियो में फाइलें खोल सकते हैं और अपना कोड संपादित करना शुरू कर सकते हैं।
शाब्दिक अर्थ में, एक परियोजना एक XML फ़ाइल (
.vbproj
, ) है.csproj
,.vcxproj
जो एक आभासी फ़ोल्डर पदानुक्रम को परिभाषित करता है जिसमें सभी आइटमों में "इसमें" और सभी बिल्ड सेटिंग्स शामिल हैं।विज़ुअल स्टूडियो में, प्रोजेक्ट फ़ाइल का उपयोग समाधान एक्सप्लोरर द्वारा प्रोजेक्ट सामग्री और सेटिंग्स को प्रदर्शित करने के लिए किया जाता है। जब आप अपना प्रोजेक्ट संकलित करते हैं, तो MSBuild इंजन निष्पादन योग्य बनाने के लिए प्रोजेक्ट फ़ाइल का उपभोग करता है। आप अन्य प्रकार के आउटपुट को भी प्रोजेक्ट्स को कस्टमाइज़ कर सकते हैं।
एक प्रोजेक्ट एक तार्किक अर्थ में और फ़ाइल सिस्टम में एक समाधान के भीतर समाहित होता है, जिसमें एक या एक से अधिक प्रोजेक्ट हो सकते हैं, साथ ही बिल्ड जानकारी, विजुअल स्टूडियो विंडो सेटिंग्स और किसी भी प्रोजेक्ट के साथ संबद्ध नहीं होने वाली किसी भी विविध फ़ाइल। शाब्दिक अर्थ में, समाधान एक पाठ फ़ाइल है जिसका अपना विशिष्ट प्रारूप है; यह आमतौर पर हाथ से संपादित करने का इरादा नहीं है।
एक समाधान में एक संबद्ध .suo
फ़ाइल होती है जो परियोजना पर काम करने वाले प्रत्येक उपयोगकर्ता के लिए सेटिंग्स, वरीयताओं और कॉन्फ़िगरेशन जानकारी संग्रहीत करती है।
एक समाधान में कई परियोजनाएं हो सकती हैं।
समाधान अपने विभिन्न प्रोजेक्ट्स के बीच निर्भरता के प्रबंधन का भी प्रबंधन कर सकता है ... यह सुनिश्चित करना कि प्रत्येक प्रोजेक्ट काम करने के लिए अंतिम समाधान के लिए उपयुक्त क्रम में निर्मित हो।
एक परियोजना में निष्पादन योग्य और लाइब्रेरी फाइलें होती हैं जो एक एप्लिकेशन या एक एप्लिकेशन के घटक बनाती हैं।
एक समाधान तार्किक रूप से संबंधित परियोजनाओं के लिए एक प्लेसहोल्डर है जो एक एप्लिकेशन बनाते हैं। उदाहरण के लिए, आपके पास अपने एप्लिकेशन के GUI, डेटाबेस एक्सेस लेयर, आदि के लिए अलग-अलग प्रोजेक्ट हो सकते हैं। परियोजनाएं आपके कार्यक्रम की कार्यक्षमता के लिए विशिष्ट विभाजन होंगी, और समाधान एक आवेदन के तहत उन सभी को एकजुट करने वाली छतरी होगी।
एक समाधान एक पठनीय पाठ फ़ाइल है जिसका विस्तार है .sln
और इसमें संरचित सामग्री है जो इसमें शामिल परियोजनाओं का वर्णन करता है । एक परियोजना एक पठनीय XML स्वरूपित पाठ फ़ाइल है जिसका विस्तार है .vcxproj
और इसकी XML स्कीमा के अनुसार एक संरचित सामग्री है, और जिसका प्राथमिक उद्देश्य स्रोत कोड फ़ाइल नाम और उनकी निर्भरता या अन्य परियोजना के स्रोत कोड के संदर्भ को सूचीबद्ध करना है।
समाधान एक या अधिक संबंधित परियोजनाओं को व्यवस्थित करने के लिए विज़ुअल स्टूडियो द्वारा उपयोग किए जाने वाले कंटेनर हैं। जब आप Visual Studio में कोई समाधान खोलते हैं, तो यह स्वचालित रूप से उन सभी परियोजनाओं को लोड कर देगा, जिनमें यह शामिल है।
जब आप Visual Studio में एक नया प्रोजेक्ट बनाते हैं, तो यह स्वचालित रूप से प्रोजेक्ट को हाउस करने के लिए एक समाधान बनाता है यदि कोई समाधान पहले से ही खुला नहीं है।
आप समाधान में अन्य परियोजनाओं पर परियोजनाओं की निर्भरता निर्धारित कर सकते हैं। निर्भर परियोजना का निर्माण उस परियोजना के बाद किया जाता है जिस पर निर्भर करता है।
अधिक जानकारी के लिए देखें - https://docs.microsoft.com/en-us/visualstudio/ide/quickstart-projects-solutions
यदि आप एक ग्रहण पृष्ठभूमि से हैं, तो आप शायद एक परियोजना का रास्ता बनाने के लिए जाएंगे और अन्य परियोजना पर निर्भरता को जोड़ेंगे या एक बाहरी जार जोड़ सकते हैं। वीएस में आप ऐसा कर सकते हैं कि एक एकल कंटेनर में समाधान कहा जाता है जहां सभी संबंधित परियोजनाएं एक साथ समूहीकृत होती हैं।
उदाहरण के लिए। मान लें कि आप निर्माण कर रहे हैं और xamrin में एंड्रॉइड और iOS ऐप हैं, तो कुछ सामान्य कोड और संसाधन होंगे जो एक अलग प्रोजेक्ट में जा सकते हैं और फिर आपके एंड्रॉइड और iOS प्रोजेक्ट इस कॉमन कोड प्रोजेक्ट पर निर्भर कर सकते हैं। इसके अलावा, आपके पास इन परियोजनाओं आदि का परीक्षण करने के लिए परियोजनाएं हो सकती हैं।