मान लें कि मेरे पास संस्करणों के साथ जीएसी में असेंबली हैं, 1.1.1.5, 1.1.5.1, 1.1.6.2, 1.2.1.1 और 2.1.2.1। मेरे आवेदन में 1.1.3.0 संस्करण का संदर्भ है। रनटाइम पर कौन सी असेंबली का मिलान किया जाएगा? और असेंबली मिलान के लिए वास्तविक नियम क्या हैं?असेंबली संस्करण मिलान वास्तव में कैसे काम करता है?
उत्तर
आपके संदर्भ के लिए एक विशेष संस्करण की आवश्यकता है, तो डिफ़ॉल्ट रूप से, यह विधानसभा लोड पर, के रूप में असफल हो जायेगी उस संस्करण मौजूद नहीं है।
यह कॉन्फ़िगर किया गया जा सकता है, तथापि, Assembly Binding Redirection के माध्यम से। यहां क्या होगा इसके कई विकल्प हैं, जिनमें शामिल हैं:
- संदर्भ कह सकता है कि यह संस्करण के बारे में परवाह नहीं करता है, इस मामले में नवीनतम लोड किया जाता है।
- आप configure your application इस तरह से बता सकते हैं कि आप बाध्यकारी को पुनर्निर्देशित करने के तरीके को निर्दिष्ट करते हैं।
- जीएसी में असेंबली setup with a publisher policy हो सकती है जो यह निर्दिष्ट करती है कि इसे कैसे संभाला जाए।
कौन सा विधानसभा रनटाइम पर मिलान किया जाएगा?
कोई भी मिलान नहीं किया जाएगा, आपका कार्यक्रम बम होगा।
वर्जन क्लास वार्ता के लिए प्रलेखन सामान्य रूप से संस्करण संख्याओं को चुनने के तरीके के बारे में बताता है। और हां, आप सामान्य रूप से बिल्ड नंबर में एक गैर-ब्रेकिंग परिवर्तन होने के लिए एक बदलाव पर विचार करते हैं। और संशोधन में परिवर्तन कम जोखिम होने के लिए। जब आप एक [असेंबलीफाइलवर्सन] चुनते हैं तो आप जिन चीजों पर विचार करते हैं।
हालांकि, डिफ़ॉल्ट CLR नीति नहीं की [AssemblyVersion] व्याख्या इस तरह की को लागू करता है, यह एक सटीक मैच पर जोर देता है। यह केवल तब खुश होता है जब यह सटीक उसी डीएलएल को ढूंढता है जिसे आपने अपने प्रोग्राम को संकलित किया था। यह सुनिश्चित करना मुश्किल नहीं है। आप इस नीति को ओवरराइड कर सकते हैं और इसे कमजोर बना सकते हैं, हालांकि आपको हमेशा इसके बारे में दो बार सोचना चाहिए। एक बहुत स्रोत कोड में अच्छी तरह से लक्षित मामूली परिवर्तनों का लंबा इतिहास है जो अभ्यास में अच्छी तरह से बाहर नहीं था। कुछ ऐसा जो माइक्रोसॉफ्ट बहुत अच्छी तरह से जानता है, दशकों के लिए रहता है जो कोड बनाए रखने के लिए। सीएलआर में डीएलएल नरक के खिलाफ डिफ़ॉल्ट काउंटर-उपाय एक चट्टान के रूप में कठिन हैं। जैसा कि वे होना चाहिए। इसे आप तक पहुंचा रहा है।
http://msdn.microsoft.com/en-us/library/system.version.aspx पर दस्तावेज़ का अर्थ गलत है। मैंने फ्रेमवर्क 1.1 में इसका परीक्षण किया है, यह सिर्फ प्रमुख .minor से मेल खाने वाला संस्करण चुनता है। क्या यह 4.0 में बदल गया है? – user960567
@user आपके द्वारा लिंक किए गए दस्तावेज़ इस उत्तर का विरोध नहीं करते हैं। जो भाग आप पढ़ रहे हैं वह शायद "टिप्पणियां" अनुभाग में है, जो * सम्मेलनों * के बारे में बात करता है। हंस कहते हैं कि मध्य अनुच्छेद में यही वही है।और कुछ सामान्य सलाह के रूप में, यदि आप 1.1 जैसे पुराने ढांचे में व्यवहार में रूचि रखते हैं, तो आपके प्रश्न में स्पष्ट रूप से इसका उल्लेख किया जाना चाहिए। उत्तरदाता वर्तमान या वर्तमान -1 संस्करण ग्रहण करने जा रहे हैं। –
- 1. जावास्क्रिप्ट [] वास्तव में कैसे काम करता है?
- 2. getSystemService() वास्तव में कैसे काम करता है?
- 3. बहुआयामी वास्तव में कैसे काम करता है?
- 4. यादृच्छिक() वास्तव में कैसे काम करता है?
- 5. Lombok.val वास्तव में कैसे काम करता है?
- 6. प्रीरेंडर वास्तव में कैसे काम करता है?
- 7. __call__ वास्तव में कैसे काम करता है?
- 8. बाध्यकारी वास्तव में कैसे काम करता है?
- 9. AsParallel वास्तव में कैसे काम करता है?
- 10. फ़ोनगैप वास्तव में कैसे काम करता है?
- 11. कैसे input.nextInt() वास्तव में काम करता है?
- 12. मैवेन में अद्यतन पॉलिसी वास्तव में कैसे काम करता है?
- 13. MOVSX असेंबली निर्देश कैसे काम करता है?
- 14. monodevelop संस्करण नियंत्रण कैसे काम करता है?
- 15. लिंक rel = "preload" काम वास्तव में कैसे करता है?
- 16. मारिया असेंबली भाषा में 'Skipcond` कैसे काम करता है?
- 17. रेक डीबी :: माइग्रेट वास्तव में कैसे काम करता है
- 18. चीनी में टोकननाइज़ेशन और पैटर्न मिलान कैसे काम करता है।
- 19. वास्तव में mvn -U कैसे काम करता है?
- 20. .NET ExecutionContext वास्तव में कैसे काम करता है?
- 21. पोर्ट नंबर वास्तव में टीसीपी में कैसे काम करता है?
- 22. वैल्यू प्रकार वास्तव में .NET में कैसे काम करता है?
- 23. सिस्टम() वास्तव में लिनक्स में कैसे काम करता है?
- 24. रूबी में, कॉरर्स() वास्तव में कैसे काम करता है?
- 25. विरासत कक्षाओं में 'स्वयं' वास्तव में कैसे काम करता है?
- 26. डाटा एन्नोटेशन वास्तव में एमवीसी में कैसे काम करता है?
- 27. संस्करण नियंत्रण कैसे काम करता है?
- 28. कैसे करता है | (पाइप) पैटर्न मिलान काम में?
- 29. regex काम में (?!) ऑपरेटर कैसे करता है?
- 30. जनरेटर समझ वास्तव में कैसे काम करता है?
क्या आप निश्चित हैं? क्योंकि यह प्रलेखन कहता है, 'समान नाम, प्रमुख, और मामूली संस्करण संख्याओं के साथ असेंबली, लेकिन अलग-अलग संशोधन पूरी तरह से परिवर्तनीय होने का इरादा है' http://msdn.microsoft.com/en-us/library/system.version.aspx – user960567
@ user960567 मैंने केवल बिल्ड नंबर मिस्चैचिंग के साथ बाध्यकारी/लोड त्रुटियां भी की हैं। यह इरादा है, लेकिन नीति फ़ाइलों को अभी भी मौजूद होना जरूरी है। –
क्या इसका मतलब है कि दस्तावेज़ीकरण सही नहीं है? – user960567