2012-09-20 39 views
11

में विफल रहता है मेरे पास एक सी # प्रोजेक्ट है जो COM के रूप में एक आंतरिक vb प्रोजेक्ट का उपयोग करता है।COMV का उपयोग कर रजिस्ट्री से लोड क्लास टूल्सवर्सियन = "2.0" के साथ काम करता है लेकिन टूल्सवर्सन = "4.0"

जब मैं VS 2010 के लिए परियोजना परिवर्तित निम्न पंक्ति मुझे एक अपवाद फेंक:

Set RTCClient_ = New RTCCORELib.RTCClient 

RTCCore.RTCClient माइक्रोसॉफ्ट का हिस्सा आरटीसी (आरटीसी क्लाइंट API 1.2) है कि आप अपने स्थापना में एम्बेड कर सकते हैं के लिए मॉड्यूल मर्ज है पैकेज (मेरे मामले में EXE शामिल है)।

RTCCore.RTCClient वर्ग कि HKEY_CLASSES_ROOT\RTCCore.RTCClient

त्रुटि मैं हो रही है के तहत रजिस्ट्री करने के लिए पंजीकृत किया जा रहा है है:

ERROR: Automation error
The specified module could not be found. (-2147024770)

लेकिन मैं अपने csproj बदल रहा है और कर रहा हूँ तो ToolsVersion="2.0" ऊपर लाइन का उपयोग काम करता है और मैं RTCClient वस्तु प्राप्त कर सकता हूं।

समस्या क्या प्रतीत होती है?

+1

आप दिखा सकते हैं कि कैसे आप सी # – Cynede

+0

से अपने COM वस्तु कहते हैं मुझे लगता है कि कुछ अपने प्रश्न से लापता जानकारी नहीं है। कृपया स्पष्ट करें कि RTCCORELib.RTCCLient क्या है; पुष्टि करें कि वीबी प्रोजेक्ट स्वयं एक COM सर्वर लागू करता है या नहीं; और सी # प्रोजेक्ट की भूमिका और यह विशेष रूप से इस वीबी कोड से कैसे संबंधित है की व्याख्या करें। –

+0

"पुष्टि करें कि वीबी प्रोजेक्ट स्वयं एक COM सर्वर लागू करता है और सी # प्रोजेक्ट की भूमिका को समझाता है और यह विशेष रूप से इस वीबी कोड से कैसे संबंधित है" - मुझे अभी भी यह आपके संपादित प्रश्न में नहीं दिख रहा है। –

उत्तर

1

प्रोजेक्ट में अपनी COM लाइब्रेरी के संदर्भ के गुणों में false पर एम्बेड इंटरऑप प्रकार सेट करने का प्रयास करें। मेरा सी # है, लेकिन आपके वीबी.Net में भी यह हो सकता है।

Properties window