जब भी हम C# कोड लिखते हैं और सॉल्यूशन को बिल्ड या रन करते हैं तो यह 2 फ़ोल्डर उत्पन्न करता है:
- bin
- obj
ये bin और obj में संकलित कोड होता है।
हमारे पास 2 फ़ोल्डर क्यों हैं?
कारण यह है कि संकलन प्रक्रिया 2 चरणों से गुजरती है:
- संकलन (compiling)
- लिंकिंग (linking)
संकलन चरण में प्रत्येक व्यक्तिगत फ़ाइल को व्यक्तिगत इकाइयों में संकलित किया जाता है।
ये संकलित फ़ाइलें बाद में एक इकाई में लिंक की जाती हैं जो एक dll या exe हो सकती है।
संकलन चरण में जो कुछ भी होता है वह obj फ़ोल्डर में जोड़ा जाता है।
अंतिम संकलन यानी लिंकिंग चरण bin फ़ोल्डर में जाता है।
यह obj फ़ोल्डर सशर्त संकलन या वृद्धिशील संकलन में उपयोग किया जाता है।
उदाहरण - मेरे पास एक बड़ा प्रोजेक्ट है जिसमें कई सॉल्यूशन और कई फ़ाइलें हैं। मान लीजिए मैं किसी एक फ़ाइल को बदलता हूं और सॉल्यूशन को बिल्ड करता हूं तो केवल वही फ़ाइल संकलित होगी, यह जानकारी obj फ़ोल्डर में मौजूद होगी।