2010-06-21 2 views
26

मैंने COM इंटरऑप के लिए .NET असेंबली बनाई है और यह मेरी विकास मशीन पर अच्छी तरह से काम कर रही है। मैं वर्तमान में विजुअल स्टूडियो की "सेटअप प्रोजेक्ट" का उपयोग करके डीएलएल को लक्षित मशीन पर कैसे तैनात करना है, यह जानने का प्रयास कर रहा हूं। निम्नलिखित विधियों को करने के लिए मैं VISual स्टूडियो सेटअप प्रोजेक्ट का उपयोग कैसे कर सकता हूं:स्वचालित रूप से पंजीकृत करने के लिए विजुअल स्टूडियो सेटअप प्रोजेक्ट का उपयोग करें और जीएसी एक COM इंटरऑप डीएलएल

  • असेंबली पंजीकृत करें (वर्तमान में regasm का उपयोग कर)।
    • असेंबली को सफलतापूर्वक पंजीकृत होना आवश्यक है और टाइप लाइब्रेरी (.tlb) को सफलतापूर्वक पंजीकृत होना आवश्यक है
    • This answer कस्टम कोड के पक्ष में regasm स्क्रैप करने का सुझाव देता है। मैं यह एक अच्छा विचार है? यदि हां, तो सेटअप कोड में यह कोड कैसे शामिल किया जाता है?
    • This answerregasm का आदेश और फिर सेटअप प्रोजेक्ट में रजिस्ट्री पर आयात उपकरण का उपयोग करने का सुझाव देता है। यह काम करेगा?
  • (वर्तमान में gacutil का प्रयोग करके) GAC में विधानसभा स्थापित
    • मैं में "ग्लोबल विधानसभा कैश फ़ोल्डर" के बारे में पता कर रहा हूँ "लक्ष्य मशीन पर फाइल सिस्टम।" क्या सेटअप परियोजना में असेंबली समेत मुझे कुछ खास करने की ज़रूरत है?

किसी भी अन्य सलाह या चिंता की बहुत सराहना की जाएगी।

उत्तर

33

Gacutil.exe लक्ष्य मशीन पर उपलब्ध नहीं होगा। कोई समस्या नहीं, एमएसआई काम पूरा कर सकता है। "लक्ष्य मशीन पर फ़ाइल सिस्टम" राइट-क्लिक करें, जोड़ें, जीएसी। उस जोड़े गए फ़ोल्डर, जोड़ें, प्रोजेक्ट आउटपुट पर राइट-क्लिक करें। यह सुनिश्चित करता है कि असेंबली gac-ed है।

यह Regasm.exe की तरह असेंबली भी पंजीकृत कर सकता है। VsdrpCOM के प्रोजेक्ट आउटपुट संदर्भ की रजिस्टर प्रॉपर्टी सेट करें।

+1

क्या रजिस्टर संपत्ति 'vsdrpCOM' पर सेट की जाएगी स्वचालित रूप से .tlb फ़ाइल को भी बना और पंजीकृत करेगी? यदि नहीं, तो मैं सेट अप प्रोजेक्ट में .tlb को कैसे शामिल करूं (ऐसा लगता है कि सेटअप प्रोजेक्ट में जीएसी फ़ोल्डर में साझा नहीं किया जा रहा है)? –

+0

यह एक अच्छा मुद्दा है। मुझे 'regasm/tlb ... टाइप करने के लिए इतना उपयोग किया गया था कि मैंने अभी माना है कि मुझे इसकी आवश्यकता होगी, लेकिन आप एक महान बिंदु लाएंगे - क्लाइंट मशीन इन असेंबली के खिलाफ कोड नहीं लिखेगी। बहुत धन्यवाद। –

+0

अपनी टिप्पणी में बेन के प्रश्न का उत्तर देने के लिए, vsdrpCOM * का उपयोग करके * स्वचालित रूप से .tlb फ़ाइल को बना और पंजीकृत करेगा। – Keith

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