अजीब व्यवहार का उपयोग कर विधानसभाओं की लोडिंग मिश्रण जब Assembly.LoadFrom और Assembly.Loadअजीब व्यवहार जब Assembly.LoadFrom और Assembly.Load
का उपयोग कर विधानसभाओं की लोडिंग मिश्रण मैं जब Assembly.LoadFrom साथ विधानसभाओं लोड हो रहा है एक अजीब व्यवहार का सामना करना पड़ा और बाद में विधानसभा के साथ। लोड।
मैं असेंबली.लोड लोड का उपयोग कर एक असेंबली लोड कर रहा हूं, जहां असेंबली किसी फ़ोल्डर में स्थित है जो निष्पादन फ़ोल्डर नहीं है।
बाद में मेरे टेस्ट कोड में जब मैं असेंबली के साथ इस असेंबली को फिर से लोड करने का प्रयास करता हूं। लोड, लोड एक System.IO.FileNotFoundException ("फ़ाइल या असेंबली लोड नहीं कर सका ...") के बावजूद विफल रहता है असेंबली पहले ही लोड हो चुकी है। लोड मजबूत नाम और गैर-मजबूत नाम दोनों के साथ विफल रहता है (एक बार फिर से लोड करने के लिए मूल कारण यह असेंबली बाइनरीफॉर्मेटर का उपयोग है)।
हालांकि, यदि असेंबली निष्पादन फ़ोल्डर में स्थित है, तो बाद में लोड मजबूत नाम और मजबूत नाम के साथ दोनों मामलों में सफल हो जाता है। इस मामले में आप देख सकते हैं कि दो समान असेंबली दो अलग-अलग स्थानों से लोड की जाती हैं।
एक साधारण कोड का नमूना है कि इस समस्या का पुनर्निर्माण करने वाला -
विधानसभा assembly1 = Assembly.LoadFrom (@ "C: \ a.dll");
// एक मजबूत नाम के साथ लोड हो रहा है विफल रहता है विधानसभा assembly2 = Assembly.Load (@ "एक, संस्करण = 1.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 14986c3f172d1c2c");
// गैर-मजबूत विफलताओं के साथ लोडिंग विधानसभा विधानसभा 3 = विधानसभा.लोड (@ "ए");
- कोई स्पष्टीकरण क्यों सीएलआर पहले से लोड की गई असेंबली को अनदेखा करता है?
- कोई विचार मैं इस समस्या को कैसे कम कर सकता हूं?
धन्यवाद।