एक ग्राहक वीबी 6 से हमारे .NET DLL का उपभोग करना चाहता है। वे रिवर्स इंटरऑप का समर्थन करने के लिए डिज़ाइन किए गए हैं और सभी ठीक काम करते हैं ... सिवाय इसके कि: दो अलग-अलग निर्देशिकाओं में दो अलग-अलग वीबी 6 प्रोग्राम हैं। ऐसा लगता है यह में से एक कार्य करने के लिए आवश्यक है: दोनों निर्देशिका मेंCOM प्रोग्राम कैसे COM इंटरॉप के लिए पंजीकृत .NET DLL का पता लगाता है?
- कॉपी नेट DLL, या
- GAC में नेट DLL स्थापित
यह ग्राहक के अवलोकन है और यह भी समर्थित RegAsm documentation द्वारा:
एक विधानसभा Regasm.exe का उपयोग कर पंजीकरण के बाद आप वैश्विक विधानसभा कैश में स्थापित कर सकते हैं इतना है कि यह किसी भी COM क्लाइंट से सक्रिय किया जा सकता है। यदि असेंबली केवल एक ही अनुप्रयोग द्वारा सक्रिय होने जा रहा है, तो आप उस एप्लिकेशन की निर्देशिका में रख सकते हैं।
मैं इस बिंदु पर उलझन में हूं।
भ्रम की प्रथम बिंदु:
जहां तक मैं समझता हूँ, COM क्रम DLL प्रोग्राम आईडी/कक्षा आईडी का उपयोग कर स्थित। जब मैं कक्षा आईडी प्रविष्टि में रजिस्ट्री में देखता हूं, तो मुझे कोडबेस कुंजी में .NET DLL का पूरा पथ दिखाई देता है। ऐसा क्यों है कि प्रोग आईडी/क्लास आईडी का उपयोग कर एक COM प्रोग्राम कोडबेस का उपयोग कर .NET DLL का पता नहीं लगाता है?
भ्रम का दूसरा बिंदु:
GAC नेट के लिए विशिष्ट है। COM संदर्भों को हल करने में यह कैसे शामिल है?