2009-04-15 30 views
33

डीएल के फाइलवर्सन और उत्पादवर्जन के बीच क्या अंतर है?डीएल के फाइलवर्सन और उत्पादवर्जन के बीच क्या अंतर है?

विशेष रूप से रनटाइम पर, मजबूत बाध्यकारी और अन्य जानकारी के लिए उपयोग किया जाता है?

मैं एक सेट मैन्युअल रूप से, और अन्य (हमारे सीआई निर्माण प्रक्रिया के माध्यम से) स्वचालित रूप से वृद्धि की जाती

संपादित करना चाहते हैं: रिचर्ड हिस्सा मैं मूल प्रश्न में याद किया जवाब दे दिया। यह असेंबली संस्करण है जिसे मैं मैन्युअल रूप से नियंत्रित करना चाहता हूं (इंटरफ़ेस परिवर्तनों में वृद्धि करना) जबकि यह फ़ाइल संस्करण है कि मैं चाहता हूं कि मेरा सीआई सिस्टम प्रत्येक बिल्ड के साथ स्वचालित रूप से बढ़े। धन्यवाद।

+0

विधानसभा संस्करण, असेंबलीफाइलवर्सन और असेंबली इन्फॉर्मेशन वर्जन (यानी असेंबली संस्करण, फ़ाइल संस्करण और उत्पाद संस्करण) पर कुछ अंतरंग जानकारी के लिए http://stackoverflow.com/a/802038 देखें। – user276648

उत्तर

16

मजबूत बाध्यकारी के लिए भी उपयोग नहीं किया जाता है (पूर्ण/मजबूत नाम का संस्करण पहलू AssemblyVersion विशेषता से आता है)।

दोनों फ़ाइल संस्करण (असेंबलीफाइलवर्सन विशेषता से) और उत्पाद संस्करण (असेंबली इन्फॉर्मेशनवर्सन विशेषता से) संस्करण संसाधन में योगदान (जैसा कि एक्सप्लोरर की फ़ाइल गुणों में देखा गया है)।

प्रदर्शन/नैदानिक ​​उद्देश्यों के अलावा, एकमात्र असली उपयोग इंस्टॉलरों द्वारा फ़ाइल को सत्यापित करने के लिए प्रतिस्थापित किया जाना चाहिए।

परिशिष्ट: ये अलग क्यों होंगे? उत्तर: संस्करण की आवश्यकताओं के कारण। असेंबली संस्करण को रखने का मतलब है कि एक अद्यतन संस्करण (उच्च फ़ाइल संस्करण के साथ) बिना किसी परिवर्तन के बाध्य होगा। इसका क्रमिकरण पर एक बड़ा प्रभाव पड़ता है (उदा। वर्कफ़्लो जारी)।

फ़ाइल और उत्पाद संस्करण केवल अलग होने की संभावना है यदि प्रश्न में असेंबली केवल एक उत्पाद का हिस्सा नहीं है (उदाहरण के लिए एक पुन: प्रयोज्य तृतीय पक्ष लाइब्रेरी), अगर केवल एक ही एप्लिकेशन में उपयोग किया जाता है तो उन्हें रखने के लिए बहुत कम कारण नहीं लगता है वही।

+1

तो व्यवहार में, हम इन तीनों को अलग क्यों करना चाहते हैं? इमो विधानसभा वर्जन शासन करना चाहिए, नहीं? –

+0

@ पीटर: अच्छा सवाल ... कुछ संक्षिप्त टिप्पणियों के साथ विस्तारित है, लेकिन वास्तव में इसे अपने आप के प्रश्न की आवश्यकता है। – Richard

23

फ़ाइलों को एक बड़ी परियोजना के हिस्से के रूप में वितरित किया जाता है। व्यक्तिगत संस्करण संस्करण x वाली एक फ़ाइल को प्रोजेक्ट संस्करण वाई के हिस्से के रूप में वितरित किया जा सकता है।

विस्तारित करने के लिए: उत्पाद संस्करण 1.1 के साथ एएक्सई फ़ाइलों B.dll और C.dll के साथ जहाजों। सभी मेल खाने वाले उत्पाद और फ़ाइल संस्करणों के साथ शुरू होते हैं। फिर किसी को उत्पाद में गंभीर बग मिलती है। डेवलपर इसे देखता है, और एक फिक्स जारी करता है जो केवल B.dll अपडेट करता है। अब मामूली फिक्स के लिए उत्पाद संस्करण 1.1.1 पर भी अपडेट हो सकता है। और बी डीएल का फ़ाइल संस्करण भी 1.1.1 होगा। लेकिन एएक्सई और सी डीएल नहीं बदले, और इसलिए उनका फ़ाइल संस्करण 1.1 हो सकता है।

+0

धन्यवाद। शायद इसे सामान्य ज्ञान माना जाता है, लेकिन अगर एमएस दस्तावेज़ों ने इसका उल्लेख किया तो यह अच्छा होगा। – iforce2d

+2

तो यदि कोई अन्य डीएलएल के साथ केवल एक निष्पादन योग्य है, तो क्या मुझे फ़ाइल संस्करण और उत्पाद संस्करण समान रखना चाहिए, और प्रत्येक नई रिलीज के साथ उन्हें क्रमशः अपडेट करना चाहिए? –

1

उन दोनों के बीच एक और अंतर है: फ़ाइल संस्करण में, आपको संस्करण भागों में 0 से अधिक या बराबर पूर्णांक का उपयोग करने की अनुमति है।

उत्पाद संस्करण में आपको किसी भी पाठ का उपयोग करने की अनुमति है, यह चेतावनी देगा, अगर यह संख्याओं का समाधान नहीं करेगा, लेकिन एमएसडीएन के अनुसार यह चेतावनी हानिरहित है।

अब आप संस्करण में न केवल संख्याओं का उपयोग क्यों करेंगे?
खैर, अर्थ संस्करण के अनुसार (semver.org) संस्करण इस तरह दिखता है:।।

  • रिलीज मेटाडाटा: [मेजर] [माइनर] [पैच] और पैच में आप उपयोग करने की अनुमति डैश के बाद, उदाहरण के लिए 1.2.1-बीटा
  • प्लस के बाद मेटाडाटा बनाएं, उदाहरण के लिए गिट 1.2 से लघु हैश।1 + f0f0f0f
संबंधित मुद्दे