तो यहां स्थिति है:असेंबली फ़ाइल नामकरण और असेंबली। लोडफाइल
मेरे पास Lib1.dll नामक एक असेंबली है। कुछ कारणों से (प्रश्न के लिए प्रासंगिक नहीं) मुझे असेंबली फ़ाइल नाम का नाम बदलकर Lib1New.dll में बदलना पड़ा, अब विधानसभा का उपयोग करके नामित असेंबली लोड करने का प्रयास करते समय .LoadFile मैंने देखा कि सीएलआर Lib1.dll को भी लोड करने का प्रयास करता है।
यदि खोज पथ में Lib1.dll पाया जाता है तो यह पता स्थान में लोड हो जाता है। यह आवेदन ठीक है कि क्या Lib1.dll पाया गया था या नहीं। (समस्या यह है कि यदि Lib1.dll पाया जाता है तो फ़ाइल लॉक हो जाती है और अन्य प्रक्रियाओं द्वारा हटाया नहीं जा सकता है)।
मुझे समझ नहीं आता क्यों LoadFile खोजों और भार Lib1.dll। लोडफाइल निर्दिष्ट स्थान पर एक असेंबली फ़ाइल की सामग्री लोड करना है, यह फ़ाइलों की खोज क्यों कर रहा है। LoadFile के लिए
MSDN प्रलेखीकरण:
उपयोग LoadFile विधि लोड करने के लिए और विधानसभाओं में एक ही पहचान है कि जांच करते हैं, लेकिन अलग अलग रास्तों में स्थित हैं। LoadFile लोडफ्रॉम संदर्भ में फ़ाइलों को लोड नहीं करता है, और लोड पथ का उपयोग करके निर्भरता को हल नहीं करता है, क्योंकि LoadFrom विधि करता है। लोडफाइल इस सीमित परिदृश्य में उपयोगी है क्योंकि लोडफ्रम का उपयोग उन असेंबली को लोड करने के लिए नहीं किया जा सकता है जिनके समान पहचान हैं लेकिन अलग-अलग पथ हैं; यह केवल पहली ऐसी असेंबली लोड करेगा।
धन्यवाद BlueMonkMN, यह कुछ समझ में आता है। यदि लाइब्रेरी गतिशील रूप से लोड हो रही है तो मूल लाइब्रेरी को लोड करना संभव है, लेकिन पोस्ट मॉनिटर लॉग जो मैंने पोस्ट के साथ संलग्न किया था, सिस्टम का उपयोग कर निम्नलिखित Lib1 का उपयोग करके उत्पादित किया गया था; नेमस्पेस लिब 1 { पब्लिक क्लास क्लास 1 { सार्वजनिक शून्य SayHello() { कंसोल। राइटलाइन ("कक्षा 1 :: SayHello"); } } } क्या आप प्रक्रिया मॉनीटर चला सकते हैं और जांच सकते हैं कि कंसोल ऐप दोनों डीएलएस लोड करने की कोशिश कर रहा है या नहीं। –
ऐसा लगता है कि यह इसे नहीं ढूंढ रहा था क्योंकि मेरे पास एप्लिकेशन निर्देशिका के अलावा किसी अन्य निर्देशिका में DLL था। – BlueMonkMN