2010-07-02 9 views
5

मुझे यह त्रुटि मिल रही है जब मैं एक लक्ष्य मशीन पर अपने आवेदन को डिलीवरी करने की कोशिश कर रहा हूं।System.Runtime.InteropServices.COMException (0x80040154)

मैं googled और पाया कि dll की जरूरत से कुछ पंजीकृत होने के लिए (अपने आवेदन में उपयोग किया जाता है कि)

तो, मैं कॉपी किया dll System32 करने के लिए है और regsvr32

किया मैं तो यह त्रुटि आई

इंटरऑप .ShockwaveFlashObject.dll लोड किया गया था bt DllRegisterServer प्रविष्टि बिंदु नहीं मिला था। फ़ाइल पंजीकृत नहीं की जा सकती

और एक अजीब चीज यह है कि, एप्लिकेशन केवल एक मशीन पर काम नहीं करता है। मैंने 10 अलग-अलग मशीनों पर परीक्षण किया और सब कुछ अच्छी तरह से काम किया। यह केवल एक मशीन पर काम नहीं किया।

क्या कोई इस पर मेरी सहायता कर सकता है?

+1

इस बेवकूफ लग सकता है, लेकिन है कि एक मशीन पर, है फ़्लैश स्थापित? –

+0

Interop.ShockwaveFlashObject.dll एक COM DLL नहीं है लेकिन एक .NET- आधारित इंटरऑप लाइब्रेरी नहीं है, इसलिए इसे शायद regsvr32-ed होने की आवश्यकता नहीं है। आपको इसके बजाय शॉकवेव फ्लैश की संबंधित COM लाइब्रेरी पंजीकृत करनी चाहिए। – chiccodoro

उत्तर

2

इंटरऑप डीएल को पंजीकृत होने की आवश्यकता नहीं है, इसे प्रभावी रूप से मौजूदा COM पंजीकृत ऑब्जेक्ट में पॉइंटर शामिल है।

यदि यह सामान्य नामकरण सम्मेलन का पालन करता है तो ऐसा लगता है कि मशीन पर ShockwaveFlashObject.dll पंजीकृत नहीं है (यह डीएलएल होगा जिसके खिलाफ आपको regsvr32 चलाना चाहिए)। संभवतः आपको शॉकवेव/फ्लैश स्थापित करने की आवश्यकता है (और/या स्थापित संस्करण की जांच सही है यदि आपको लगता है कि यह पहले से ही बॉक्स पर है)।

+0

मैं वास्तव में समझ नहीं सकता। मैंने अपने आवेदन के लिए सेटअप बनाने के लिए सेटअप प्रोजेक्ट का उपयोग किया। यह Flash10a.ocx, AxInterop.ShockwaveFlashObjects.dll और Interop.ShockwaveFlashObjects.dll निर्भरता के रूप में मिला। और आदर्श रूप से, सेटअप अब भी मेरे लिए इन्हें पंजीकृत करना चाहिए। है ना? मैंने फ़्लैश प्लेयर को दोबारा स्थापित करने का प्रयास किया, लेकिन मुझे बार-बार एक ही परिणाम मिल रहा है! – Jayesh

+0

क्या आपने regsvr32.dll के साथ Flash10a.ocx पंजीकृत किया है? –

+0

@ सैमहोल्डर हाँ! मैं इसे एप्लिकेशन के भीतर ही कर रहा हूं। और इसलिए, सभी मशीनों पर यह पंजीकृत हो गया और मेरा आवेदन ठीक चला गया। यह केवल एक मशीन पर है कि मुझे समस्या हो रही है – Jayesh

0

कि इंटरऑप डीएल एक COM dll नहीं है जिसे regsvr32.dll के साथ पंजीकृत करने की आवश्यकता है, यह एक इंटरऑप डीएल है जो COM सामान और प्रबंधित सामग्री के बीच लिंक प्रबंधित करता है, मुझे विश्वास है।

शायद आपको किसी अन्य डीएलएल (यानी & सभी COM dlls, शायद ShockwaveFlashObject.dll) को पंजीकृत करने की आवश्यकता है या आपके पास कुछ अन्य अनुपलब्ध निर्भरता है। मशीन के बारे में क्या अलग है जिस पर यह मशीनों की तुलना में काम नहीं करता है जो यह काम करता है? क्या सभी निर्भरताओं को सभी मशीनों पर स्थापित किया गया है (जैसे फ़्लैश?) क्या ओएस अलग है? हो सकता है कि कुछ नए ओएस में पुरानी मशीनों की पुरानी निर्भरता न हो।

1

उदाहरण के लिए, आप व्यवस्थापक के रूप में चलाने के लिए और cmd system32 निर्देशिका के लिए ब्राउज़ करें और चलाने के निम्न कर सकते हैं:

for %1 in (*.dll) do regsvr32 /s %1 

और

for %1 in (*.ocx) do regsvr32 /s %1 
संबंधित मुद्दे