क्या डॉटनेट इंटरऑप और सी # के साथ पंजीकरण मुक्त COM का उपयोग करना संभव है? यदि ऐसा है तो सी # प्रोजेक्ट में COM ऑब्जेक्ट का संदर्भ कैसे जोड़ता है?सी # के साथ रेग फ्री COM इंटरऑप, संभव है?
मेरे पास एक एम्बेडेड मेनिफेस्ट और दो टेस्ट क्लाइंट्स के साथ एक रेग फ्री एटीएल COM सर्वर डीएल है, एक सीपीपी अन्य सी #। सीपीपी ग्राहक को सही ढंग से संदर्भित करती एक आयात बयान और या तो
#pragma comment(linker, "\"/manifestdependency:type='win32' name='TestComSvr2' version='1.0.0.0'\"")
या सेटिंग 'अतिरिक्त प्रकट निर्भरता' के लिए प्रयोग कर COM ऑब्जेक्ट "type = 'Win32' name = 'TestComSvr1' संस्करण = '1.0.0.0'" लिंकर के तहत -> मैनिफेस्ट फ़ाइल विकल्प, जिसके बाद सीपीपी क्लाइंट ठीक से चलेंगे, जब तक COM घटक एक ही निर्देशिका में है।
सी # क्लाइंट हालांकि बिल्कुल खेलने से इंकार कर देता है।
या तो अपंजीकृत COM घटक dll या त्रुटि में अपंजीकृत tlb परिणाम के लिए एक फ़ाइल संदर्भ जोड़ने के लिए प्रयास कर रहा है:
"A reference to 'blah blah' could not be added. Please make sure that the file is accessible, and that it is a valid assembly or COM component".
'regtlib TestComSvr' के साथ बस प्रकार लायब्रेरी का पंजीयन करने और फिर एक फ़ाइल या बनाने कॉम कि के संदर्भ में सी # परियोजना में जो परिणाम के साथ निर्माण करने में नाकाम रहने:, पृथक करने के लिए संदर्भ की स्थापना, सी # परियोजना तो निर्माण पंजीकरण रद्द
"Error loading type library/Dll. (Exception from HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY))".
COM घटक का पंजीयन और ग # परियोजना में सामान्य रूप से एक संदर्भ बनाने घटक और इस अपवाद में सी # परियोजना परिणाम चल:
Retrieving the COM class factory for component with CLSID {B1D0A80F-0050-4856-BACD-87D664E58CBE} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
नोट: भले ही यह काम किया यह एक उपयोगी मामले वैसे भी नहीं होगा, क्योंकि अंतत: यह अभी भी घटक के पंजीकरण की आवश्यकता है, मैं सिर्फ यह के लिए परीक्षण किया पूर्णता।
अभी तक एकमात्र तरीका मैं सी # से COM ऑब्जेक्ट को संदर्भित करने में सक्षम हूं, COM ऑब्जेक्ट को स्वयं पंजीकृत कर रहा है, जो निश्चित रूप से बिंदु को पूरी तरह से हरा देता है, तब से यह बिल्कुल मुक्त नहीं होता है।
किसी को भी कोई विचार है?
(यह वीएस 2010 एसपी 1 के साथ विनएक्सपी पर है)।
आश्चर्य है कि क्या आपको दृश्य स्टूडियो exe के लिए एक मेनिफेस्ट फ़ाइल बनाने की आवश्यकता होगी? यह लिंक मिला, लेकिन यह सुनिश्चित नहीं है कि यह सब उपयोगी है http://msdn.microsoft.com/en-us/library/ms973913.aspx – PeskyGnat
इसके अलावा, यदि आप tlbimp के साथ एक इंटरऑप डीएल बनाते हैं और संदर्भित करते हैं तो क्या होगा? यानी 'tlbimp' के साथ? –
PeskyGnat