हम पंजीकरण-मुक्त COM करने के लिए मैनिफेस्ट फ़ाइलों का उपयोग करते हैं, क्योंकि मैंने this other question में भी विस्तार किया है।प्लग-इन आर्किटेक्चर में पंजीकरण-मुक्त COM कैसे करें
अब हम प्लग-इन का समर्थन करने वाले एप्लिकेशन के साथ पंजीकरण-मुक्त COM का उपयोग करने का प्रयास कर रहे हैं। प्लग-इन ओसीएक्स फाइलें हैं जिन्हें मुख्य एप्लिकेशन के पहले से इंस्टॉल होने के बाद मुख्य एप्लिकेशन के फ़ोल्डर में जोड़ा जा सकता है।
हालांकि, इसका मतलब है कि मुख्य एप्लिकेशन की मेनिफेस्ट फ़ाइल को प्लग-इन इंस्टॉलर द्वारा पैच करने की आवश्यकता होगी। ऐसा लगता है कि ऐसा करने के लिए एक खतरनाक और त्रुटि-प्रवण चीज है, खासकर यदि एकाधिक प्लग-इन इंस्टॉल किए जा सकते हैं।
क्या किसी भी तरह से मुख्य एप्लिकेशन की मेनिफेस्ट फ़ाइल को विभाजित करने का कोई तरीका है, ताकि प्रत्येक प्लग-इन सुरक्षित रूप से एक अलग फ़ाइल के रूप में अपना स्वयं का हिस्सा जोड़ सके? या मैनिफेस्ट फ़ाइल पैच करने के लिए एक और सुरक्षित तरीका?
यदि यह प्रासंगिक है: हम wix के साथ हमारे इंस्टॉलर बनाते हैं।
+1 दिलचस्प! ऐसा लगता है कि मेरे पास कुछ पढ़ने के लिए है। –
धन्यवाद, यूजीन। क्या आप किसी भी नमूना कोड के बारे में जानते हैं जो कम से कम इनमें से एक समाधान का उपयोग करता है? धन्यवाद। –
मुझे वास्तव में गाइड का पालन करके यह काम करने के लिए मिला: http://www.mazecomputer.com/sxs/help/sxsapi3.htm और यहां vvvsample से उदाहरण कोड भी: http://msf.codeplex.com/लेकिन मुझे COM dll को उसी निर्देशिका में कॉपी करना होगा जैसा कि मैं बचाना चाहता हूं। मैं वर्तमान में बाह्य अभिव्यक्ति का पूरा पथ और परीक्षण निर्देशिका का पूरा पथ CACTCtxHandle.Create() (उदा। "सी: \ Rel \ MyCppTests.dll.manifest" और "C: \ Rel" क्रमशः)। COM dll भी "सी: \ रिले" में रहता है लेकिन exe एक अलग निर्देशिका में रहता है (उदा। "सी: \ TestRunner")। कोई विचार? –