17

एएसपी.Net प्रोजेक्ट के संदर्भ के रूप में एक डीएलएल जोड़ते समय, VS2008 बिन निर्देशिका में कई फाइलें जोड़ता है। यदि DLL को foo.dll कहा जाता है, तो VS2008 foo.dll.refresh, foo.pdb और foo.xml जोड़ता है। मुझे पता है कि foo.dll क्या है :-), वीएस -2008 अन्य तीन फाइलें क्यों जोड़ता है? उन तीन फाइलें क्या करती हैं? क्या मैं उन्हें हटा सकता हूँ? क्या उन्हें स्रोत नियंत्रण में जोड़ा जाना चाहिए?विजुअल स्टूडियो 2008 - संदर्भ जोड़ें

उत्तर

20

स्रोत नियंत्रण:

बेन स्ट्रॉब इस पोस्ट के लिए एक टिप्पणी में कहा: .dll.refresh फ़ाइलें, स्रोत नियंत्रण यदि आवश्यक में जोड़ा जाना चाहिए .xml, .pdb और निश्चित रूप से .dll फ़ाइलें नहीं होना चाहिए, जबकि जोड़ा।

क्यों यह एक अच्छी बात यह है कि (कभी कभी) है: जब .refresh फ़ाइल जोड़ने के लिए

जॉन रूडी समझाया? मान लें कि आप एक टीम वातावरण में हैं। कोई foo.dll के लिए कोड में चेक करता है, और आपकी बिल्ड सिस्टम एक नया DLL बनाता है, जो इसे सर्वर पर फ़ाइल शेयर में आउटपुट करता है। फ़ाइल रीफ्रेश DLL की उस सर्वर प्रति को रीफ्रेश करें। अगली बार जब आप निर्माण करेंगे, वीएस ऑटो-जादुई रूप से नवीनतम और उस डीएलएल की सबसे बड़ी प्रतिलिपि लेंगे।

.xml डेविड Mohundro की तरह कहा:

xml फ़ाइल एक्सएमएल टिप्पणियाँ और IntelliSense के लिए नहीं है।विजुअल स्टूडियो पार्स करेगा और एक्सएमएल टिप्पणियों को प्रदर्शित करेगा जो उस डीएलएल में विधियों को कॉल करते समय जोड़े गए थे।

.pdb डेविड Mohundro की तरह कहा:

pdb डिबगिंग और प्रतीकों के लिए नहीं है। यदि आपको से अपवाद प्राप्त हुआ है, तो आप स्टैकट्रैक आदि प्राप्त कर पाएंगे। आप पर नियंत्रण कर रहे हैं कि पीडीबी बनाया गया है या नहीं।

.refreshfrom a blog post about .refresh files:

यह बताता है वी.एस. जहां एक ही आधार नाम के साथ dll का अद्यतन संस्करणों के लिए देखने के लिए। वे टेक्स्ट फाइलें हैं, आप उन्हें खोल सकते हैं और इसका उपयोग कर रहे पथ को देख सकते हैं।

उनका उद्देश्य आपको से नए संस्करणों की प्रतिलिपि बनाने के लिए रोकना है। VS2003 में, इस परियोजना फ़ाइल संदर्भ के स्रोत स्थान होते हैं, लेकिन जब से VS2005 ASP.NET परियोजनाओं के लिए नहीं उपयोग परियोजना फाइलों करता है, इस कि विशेष रूप से कार्यक्षमता के लिए प्रतिस्थापन है।

+1

केवल एक चीज जो मैं जोड़ूंगा वह यह है कि * .dll.refresh फ़ाइलें * शॉन * स्रोत नियंत्रण में जाएं, बिन निर्देशिका में किसी और चीज के विपरीत। –

+0

इसे पोस्ट में जोड़ा गया। – xsl

+0

स्रोत नियंत्रण में .dll.refresh डालने के संबंध में - क्या होता है यदि DLL कुछ फ़ाइल सर्वर पर नहीं है, लेकिन स्थानीय रूप से संग्रहीत है, प्रत्येक डेवलपर के पास अपनी प्रतिलिपि है? मुझे लगता है कि यही कारण है कि जॉन रूडी कहते हैं "कभी-कभी" :) – OregonGhost

3

foo.pdb foo.dll के लिए डीबगर प्रतीक फ़ाइल है, आप इसे चाहते हैं या आप उस कोड में ब्रेकपॉइंट सेट करने में सक्षम नहीं होंगे।

11

पीडीबी डीबगिंग और प्रतीकों के लिए है। यदि आपको इससे अपवाद हटा दिया जाता है, तो आप स्टैकट्रैक प्राप्त कर पाएंगे, आदि। आप पीडीबी के निर्माण के चयन के नियंत्रण में हैं। एक्सएमएल फाइल एक्सएमएल टिप्पणियों और इंटेलिजेंस के लिए है। विजुअल स्टूडियो उस पर विश्लेषण करेगा और उन XML टिप्पणियों को प्रदर्शित करेगा जो आपके डीएलएल में विधियों को कॉल करते समय जोड़े गए थे।

मुझे रीफ्रेश फ़ाइल के बारे में पता नहीं है।

2

वीएस 2008008 बिन निर्देशिका में कई फाइलें जोड़ता है [...] क्या उन्हें स्रोत नियंत्रण में जोड़ा जाना चाहिए?

बिन निर्देशिका में कुछ भी स्रोत नियंत्रण में जोड़ने की आवश्यकता नहीं है। प्रारंभिक रूप से किसी प्रोजेक्ट में जांच करते समय पहली बात यह है कि बिन और ओबीजे निर्देशिकाओं को अनदेखा करना है। तो हाँ, आप इन फ़ाइलों को हटा सकते हैं, लेकिन विजुअल स्टूडियो उन्हें फिर से बना देगा।

13

रीफ्रेश फ़ाइल (क्योंकि उस पर अभी तक कोई भी हिट नहीं है!) वर्णन करता है कि डीएलएल कहां से आया था। यह स्वत: रीफ्रेश संदर्भों के लिए है; जब भी आप पूर्ण निर्माण करते हैं, वीएस उस पथ को देखेगा और डीएलएल के उस संस्करण की प्रतिलिपि बनायेगा।

यह एक अच्छी बात क्यों है (कभी-कभी)? मान लें कि आप एक टीम के माहौल में हैं। कोई foo.dll के लिए कोड में चेक करता है, और आपकी बिल्ड सिस्टम एक नया DLL बनाता है, जो इसे सर्वर पर फ़ाइल शेयर में आउटपुट करता है। आपकी रीफ्रेश फ़ाइल DLL की उस सर्वर प्रति को इंगित करती है। अगली बार जब आप बिल्ड करेंगे, वीएस स्वचालित रूप से उस डीएलएल की नवीनतम और सबसे बड़ी प्रतिलिपि ले जाएगा।

+0

बहुत अच्छा, इसके बारे में नहीं पता था। धन्यवाद! –

संबंधित मुद्दे