2012-04-17 5 views
7

हमारे पास स्पाइसी पर आधारित आईई के लिए एक प्लगइन है, इसका उद्देश्य कुछ बाहरी उपकरणों से कनेक्ट करना है।RegAsm वास्तव में क्या करता है? फाइल कॉपी की गई कहां हैं?

उन बाहरी उपकरणों से कनेक्ट करने के लिए, एक और कंपनी ने अपना टोकन & डीएलएल विकसित किया। टोकन द्वारा प्रमाणीकरण करने के लिए हमें कुछ ActiveX और DLL की आवश्यकता है।

समस्या यह है कि हमने आईई के लिए विकसित प्लगइन को अंतिम भाग में एक install.bat फ़ाइल है, जो एक RegAsm चलाता है और DLL को पंजीकृत करता है और उसके बाद प्लगइन (या इसके परिवर्तन) IE में देखने योग्य है।

आईई से प्लगइन चलाते समय, हमारे कोड को कुछ डीएलएल नहीं मिल सकता है, प्रमाणीकरण के लिए आवश्यक (नाम x.dll)। पंजीकृत डीएलएल कहाँ कॉपी किया गया है? क्या यह वास्तव में कॉपी किया गया है? मुझे फ़ोल्डर में x.dll होना चाहिए जहां मेरी प्लगइन का DLL मौजूद है।

उत्तर

6

संक्षेप में, RegAsm आपकी .NET असेंबली को COM-देखने योग्य होने के लिए पंजीकृत करता है। एमएसडीएन से: एक बार कक्षा पंजीकृत होने के बाद, कोई भी COM क्लाइंट इसका उपयोग कर सकता है जैसे कक्षा एक COM कक्षा थी। कक्षा केवल एक बार पंजीकृत होती है, जब असेंबली स्थापित होती है। असेंबली के भीतर कक्षाओं के उदाहरण COM से तब तक नहीं बनाए जा सकते जब तक कि वे वास्तव में पंजीकृत नहीं होते हैं।

ActiveX में अपना कोड देखे बिना, यदि मैं आपको सही ढंग से समझता हूं, तो आपका ActiveX कुछ COM DLL पर निर्भर है, यही कारण है कि आप .NET DLL के विरुद्ध RegAsm चला रहे हैं।

पंजीकृत होने के विवरण जानने के लिए RegDllView चलाएं और फिर जांचें कि क्या आप वास्तव में उस ऑब्जेक्ट को तुरंत चालू कर रहे हैं जो वास्तव में पंजीकृत था।

इसके अलावा, यदि आपको अभी भी समस्याएं हैं, तो VB6/Visual Studio 2010 आदि में ऑब्जेक्ट को तुरंत चालू करने का प्रयास करें या यह देखने के लिए कि आपको कोई समस्या है या नहीं, प्रारंभिक बाध्यकारी में समकक्ष प्रयास करें। तत्काल पर त्रुटि की जांच करें।

+0

स्थिति विपरीत है, हमें हमारे प्रबंधित कोड में कॉम/सक्रिय एक्स घटकों को तुरंत चालू करने की आवश्यकता है, हमारे प्रबंधित कोड को कॉम/सक्रिय एक्स घटक –

+1

अहह ठीक नहीं मिल सकता है। यदि ये क्लासिक COM घटक हैं, तो आपको बस उन पर regsvr32 करना चाहिए। उसके बाद, आप COM V के तहत अपने VS .NET प्रोजेक्ट में संदर्भ जोड़ने और तत्काल करने में सक्षम होना चाहिए। वीएस टाइपिंग मैपिंग इत्यादि के मामले में पृष्ठभूमि में आपके लिए कड़ी मेहनत करता है। – AshesToAshes

+1

इसके अलावा बस इसमें अच्छी जानकारी है, यहां अच्छी जानकारी है: http://stackoverflow.com/questions/635839/best-way-to- एक्सेस-कॉम-ऑब्जेक्ट्स-से-सी-तेज जो आपको भी शुरू करने में मदद करनी चाहिए। दोबारा, इसे तुरंत चालू करने का प्रयास करें और HRESULT/कैच की जांच करें जो आप साथ जाते हैं। – AshesToAshes

संबंधित मुद्दे