जवाबों:
obj
फ़ोल्डर रखती वस्तु, या मध्यवर्ती, फ़ाइलें , जो बाइनरी फ़ाइलें कि अभी तक लिंक नहीं किए गए संकलित कर रहे हैं। वे अनिवार्य रूप से टुकड़े हैं जिन्हें अंतिम निष्पादन योग्य बनाने के लिए संयोजित किया जाएगा। कंपाइलर प्रत्येक स्रोत फ़ाइल के लिए एक ऑब्जेक्ट फ़ाइल बनाता है, और उन फ़ाइलों को obj
फ़ोल्डर में रखा जाता है ।
bin
फ़ोल्डर रखती बाइनरी फ़ाइलें , जो आपके आवेदन या लाइब्रेरी के लिए वास्तविक निष्पादन योग्य कोड हैं।
इनमें से प्रत्येक फ़ोल्डर को आगे Debug
और Release
फ़ोल्डरों में विभाजित किया गया है , जो कि परियोजना के निर्माण विन्यास के अनुरूप है। ऊपर चर्चा की गई दो प्रकार की फाइलों को उपयुक्त फ़ोल्डर में रखा जाता है, जिसके आधार पर आप किस प्रकार का निर्माण करते हैं। इससे आपके लिए यह निर्धारित करना आसान हो जाता है कि डिबगिंग प्रतीकों के साथ कौन से एक्ज़ीक्यूटेबल्स बनाए गए हैं, और जो अनुकूलन के साथ बनाए गए हैं और रिलीज़ के लिए तैयार हैं।
ध्यान दें कि आप बदल सकते हैं जहाँ Visual Studio आपकी निष्पादन योग्य फ़ाइलों को आपके प्रोजेक्ट के गुणों में एक संकलन के दौरान आउटपुट करता है। आप अपने बिल्ड कॉन्फ़िगरेशन के लिए नाम और चयनित विकल्प भी बदल सकते हैं।
obj
वास्तव में केवल गैर-लिंक की गई ऑब्जेक्ट कोड फ़ाइलें हैं? मेरे अनुभव से, यह उन सभी को सम्मिलित करता है, और अंतिम बिल्ड स्टेप पर, "फाइनल सेट" का हिस्सा बनने वाली फाइलों को कॉपी किया जाता है bin
।
मैं आपको इस youtube वीडियो को देखने के लिए प्रोत्साहित करूंगा जो C # bin और obj फ़ोल्डरों के बीच के अंतर को प्रदर्शित करता है और यह भी बताता है कि हमें वृद्धिशील / सशर्त संकलन का लाभ कैसे मिलता है।
C # संकलन एक दो-चरणीय प्रक्रिया है, अधिक विवरण के लिए नीचे दिए गए चित्र देखें:
यदि आप दोनों बिन और obj निर्देशिका की तुलना करते हैं, तो आपको "obj" निर्देशिका में बड़ी संख्या में फाइलें मिलेंगी क्योंकि इसमें व्यक्तिगत संकलित कोड फाइलें हैं जबकि "bin" में एक एकल इकाई है।
obj
निर्देशिका मध्यवर्ती वस्तु फ़ाइलें और अन्य क्षणिक डेटा फ़ाइलों कि निर्माण के दौरान संकलक या निर्माण प्रणाली द्वारा उत्पन्न कर रहे हैं के लिए है। bin
निर्देशिका है कि अंतिम उत्पादन बाइनरी (और किसी भी निर्भरता या अन्य परिनियोजन योग्य फ़ाइलें) के लिए लिखा जाएगा निर्देशिका है।
आप परियोजना सेटिंग्स के भीतर दोनों उद्देश्यों के लिए उपयोग की जाने वाली वास्तविक निर्देशिकाओं को बदल सकते हैं, यदि आप चाहें।
Obj निर्देशिका के बारे में एक दिलचस्प तथ्य: यदि आपके पास किसी वेब प्रोजेक्ट में प्रकाशित किया गया है, तो प्रकाशित की जाने वाली फाइलें obj \ Release \ Package \ PackageTmp का मंचन किया जाएगा। यदि आप एकीकृत VS सुविधा का उपयोग करने के बजाय फ़ाइलों को स्वयं प्रकाशित करना चाहते हैं, तो आप उन फ़ाइलों को हड़प सकते हैं, जिन्हें आपको वास्तव में यहां पर तैनात करने की आवश्यकता है, बिन निर्देशिका में सभी डिजिटल मलबे के माध्यम से लेने के बजाय।
setup
यदि आप उनका उपयोग कर रहे हैं तो परियोजनाओं से सावधान रहें ; Visual Studio सेटअप प्रोजेक्ट फ़ोल्डर के बजाय फ़ोल्डर Primary Output
से खींचता है ।obj
bin
मैं अनुप्रयोगों मैंने सोचा था कि समझ से परे है और प्रवेश करने के बाद जारी किया गया था msi
काफी देर के लिए सेट अप करने से पहले मुझे पता चला कि तैनात आवेदन फ़ाइलें वास्तव में न तो पर बाद निर्माण प्रक्रिया प्रदर्शन के रूप में अस्पष्ट थे और न ही के रूप में हस्ताक्षर किए मैं bin
फ़ोल्डर विधानसभाओं और लक्षित कर किया जाना चाहिए था obj
फ़ोल्डर इसके बजाय विधानसभाएं।
यह सहज imho से दूर है, लेकिन सामान्य setup
दृष्टिकोण Primary Output
परियोजना का उपयोग करना है और यह obj
फ़ोल्डर है। मुझे अच्छा लगेगा अगर कोई इस btw पर कुछ प्रकाश डाल सकता है।