सबसे आसान तरीका (और रॉब एम इस बारे में बताएगा कि यह गलत) डीएलएल के लिए फ़ाइल टैग पर SelfRegCost=1
का उपयोग करने के लिए है।
यह गलत है, क्योंकि हमें डीएलएल के पंजीकरण को स्पष्ट रूप से नियंत्रित करना चाहिए, इसे डीएलआर रजिस्टर सर्वर के माध्यम से मनमाने ढंग से कोड चलाने की अनुमति नहीं देना चाहिए। सिद्धांत यह है कि डीएलएल रजिस्ट्री में उचित प्रविष्टियों को डालने से परे कुछ भी नहीं करना चाहिए जब DllRegisterServer कहा जाता है। दुर्भाग्यवश, उनमें से बहुत से लोग इससे अधिक करते हैं, इसलिए स्वयं-पंजीकरण आपके काम को स्थापित करने का एकमात्र तरीका हो सकता है।
यह भी गलत है, क्योंकि इसका मतलब है कि विंडोज इंस्टॉलेशन सिस्टम उन रजिस्ट्री कुंजियों के बारे में कुछ नहीं जानता है, और वहां क्या होना चाहिए और क्या नहीं होना चाहिए। इसका मतलब है कि मरम्मत काम नहीं करेगी, और संभवतः अन-इंस्टॉलेशन ठीक से साफ नहीं होगा, आदि
अन्यथा, आप अपने डीएलएल पर heat.exe
को इंगित करके उचित वाईएक्स कोड उत्पन्न कर सकते हैं और अपने आउटपुट को अपने वर्तमान वाईएक्स में एकीकृत कर सकते हैं। परियोजना। आपको विभिन्न प्रकार की कक्षा, प्रोगिड, टाइपलिब और रजिस्ट्री टैग मिलेंगे। संकलन करने के लिए आपको उस आउटपुट को मैन्युअल रूप से संपादित करने की आवश्यकता हो सकती है।
मुझे उम्मीद है कि इससे मदद मिलती है।
स्रोत
2008-12-12 21:31:35
तो मूल रूप से कॉपी/heat.exe से उत्पादन पेस्ट और उचित रास्तों आदि बदलने? – Davy8
मैं उन wxs को रखना पसंद करता हूं जो मुख्य खंडों के संदर्भ में एक खंड में बनाई गई गर्मी डालती हैं। गर्मी में आपके द्वारा चुने गए विकल्प क्या थे, जिन्होंने डीएलएल पंजीकृत नहीं किया था। – CheGueVerra
मुझे आमतौर पर कक्षा टैग और प्रोजेड टैग को फ़ाइल टैग में स्थानांतरित करना होता है, और संभवतः कुछ रजिस्ट्री कुंजियों को संपादित करना होता है। विशेष रूप से, यदि डीएलएल एक .NET DLL है, तो आपको रजिस्ट्री कुंजियों के लिए अद्वितीय आईडी प्रदान करने की आवश्यकता होगी जो mscoree.dll का संदर्भ लें या आपको ऑटो-जेनरेट किए गए लोगों के साथ टक्कर मिल जाएगी। –