हमारे पास गैर मजबूत नामित असेंबली के विभिन्न संस्करण हैं, और app.exe.config में उनके लिए कोई बाध्यकारी रीडायरेक्ट/प्रोबिंग पथ नहीं हैं। उदाहरण के लिए, MyDll (1.0.0.0_null_neutral) और MyDll (2.0.0.0_null_neutral)। App.exe से संबंधित, ये असेंबली LAC \ MyDll_1.0.0.0_null_neutral और LAC \ MyDll_2.0.0.0_null_neutral में संग्रहीत हैं।.NET रनटाइम गैर-मजबूत नामांकित 'असेंबली कैसे ढूंढता है?
मेरी समझ यह है कि क्योंकि MyDll असेंबली मजबूत-नामित नहीं हैं, .NET रनटाइम MyDll के विभिन्न संस्करणों के बीच अंतर नहीं करता है। इसलिए, यदि MyDll 1.0.0.0 पहले से ही स्मृति में लोड किया गया था और MyDll 2.0.0.0 के विरुद्ध बनाया गया कुछ कोड निष्पादित किया गया था, तो .NET रनटाइम MyDll 2.0.0.0 लोड नहीं करेगा।
हालांकि, जब मैंने वीएस 2008 के साथ प्रक्रिया से जुड़ा हुआ और मॉड्यूल विंडो देखी, तो मैंने देखा कि MyDll 1.0.0.0 और MyDll 2.0.0.0 दोनों को एलएसी फ़ोल्डर से लोड किया गया था।
कहीं मेरी समझ में एक अंतर लगता है। क्या कोई इसे इंगित कर सकता है?
संपादित करें: अब तक प्रतिक्रियाओं के लिए धन्यवाद। हाँ, मैं उस बिट पर छोड़ दिया। निष्पादन योग्य असेंबली रीसोल्व घटना को सुनता है, और एलएसी में देखकर इसे संभालता है।
मुझे पूरा यकीन था कि मैंने कुछ एमएसडीएन दस्तावेज देखा था इससे पहले कि कहा गया संस्करण तब तक अनदेखा नहीं किया जाता जब तक कि एक असेंबली मजबूत न हो। मैं देखूंगा कि मैं इसे खोद सकता हूं या नहीं।
यह संभवतः आपके द्वारा वर्णित तरीके से काम नहीं कर सकता है। जांच पथ को बदलने के बिना एलएसी उपनिर्देशिका में सीएलआर को डीएलएल खोजने का कोई तरीका नहीं है। –
एक ऐसा असेंबली के दो अलग-अलग संस्करण होने का आपका उद्देश्य क्या है जो यहां से दिखता है? क्या आप काम करने के लिए अपने आवेदन के लिए नवीनतम लोड नहीं कर सकते? –
2 अलग-अलग संस्करण हैं क्योंकि एप्लिकेशन में विभिन्न टीमों द्वारा लिखे गए विभिन्न प्लगइन होते हैं, जिनमें से प्रत्येक असेंबली के एक अलग संस्करण का उपयोग कर सकता है। आमतौर पर, हम केवल प्रोबिंग पथ/बाइंडिंग रीडायरेक्ट के माध्यम से उच्चतम संस्करण का उपयोग करते हैं। लेकिन मैं सिर्फ यह जानना चाहता था कि सीएलआर गैर मजबूत नामित असेंबली के लिए वर्जनिंग की उपेक्षा नहीं करता है या नहीं। –