2012-06-19 10 views
6

सबसे पहले मुझे एक तृतीय पक्ष ActiveX नियंत्रण मिला है जिसका उपयोग करने की आवश्यकता है।एम्बेड इंटरपैप चेतावनी को मौन नहीं कर सकता

अगला मुझे उस तीसरे पक्ष को कुछ छवियों को नियंत्रित करने के लिए स्टडोल लाइब्रेरी का उपयोग करना होगा। जब मैं डिफ़ॉल्ट सेटिंग्स के तहत संकलन, मैं कुछ चेतावनी मिलती है:

warning CS1762: A reference was created to embedded interop assembly 'c:\Windows\assembly\GAC\stdole\7.0.3300.0__b03f5f7f11d50a3a\stdole.dll' because of an indirect reference to that assembly created by assembly 'XXX\obj\x86\Release\Interop.ThirdPartyControl.dll'. Consider changing the 'Embed Interop Types' property on either assembly. 
warning CS1762: A reference was created to embedded interop assembly 'c:\Windows\assembly\GAC\stdole\7.0.3300.0__b03f5f7f11d50a3a\stdole.dll' because of an indirect reference to that assembly created by assembly 'XXX\obj\x86\Release\AxInterop.ThirdPartyControl.dll'. Consider changing the 'Embed Interop Types' property on either assembly. 

आसान पर्याप्त, मैं stdole संदर्भ के लिए है कि सलाह और गलत पर सेट करें Interop प्रकार का पालन करेंगे। जब तक मैं अब क्लाइंट मशीन पर जाते हैं, जब अचानक आवेदन इस फेंक रहा है सब कुछ अच्छा लग रहा है:

Could not load file or assembly 'stdole, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. 

तो, मुझे लगता है कि ऐसा होने वाला नहीं है (हालांकि मैं क्यों stdole पर एम्बेड इंटरॉप को हटाने यकीन नहीं है लाइब्रेरी को पूरी तरह से अविभाज्य बनाने का प्रभाव)।

ठीक है, चलिए दूसरी तरफ जाएं और एम्बेडेड इंटरऑप सच के साथ सबकुछ चिह्नित करें। ओओपीएस! त्रुटि संकलित करें:

Error 2 Cannot embed interop types from assembly 'XXX\obj\x86\Release\AxInterop.ThirdPartyControl.dll' because it is missing either the 'ImportedFromTypeLibAttribute' attribute or the 'PrimaryInteropAssemblyAttribute' attribute XXX\obj\x86\Release\AxInterop.ThirdPartyControl.dll XXX 
Error 1 Cannot embed interop types from assembly 'XXX\obj\x86\Release\AxInterop.ThirdPartyControl.dll' because it is missing the 'GuidAttribute' attribute XXX\obj\x86\Release\AxInterop.ThirdPartyControl.dll XXX 

तो, कैसे चेतावनी से छुटकारा और कुछ है कि बनाया जा सकता है और चला पाने के लिए पर कोई सलाह?

अद्यतन

हंस Passant एक जवाब है कि वास्तव में समस्या का समाधान करता है एक टिप्पणी के रूप में तैनात। अगर वह इसे उत्तर के रूप में दोहराता है तो मैं इसे स्वीकार करूंगा। दुर्भाग्य से मुझे मानक समस्या भी मिल रही है जहां डीएलएल को कॉपी स्थानीय पर सेट किया गया है, इसकी प्रोजेक्ट के रिलीज फ़ोल्डर में अच्छी तरह से कॉपी किया गया है, लेकिन फिर समाधान के लिए अंतिम रिलीज फ़ोल्डर (एक अलग निष्पादन योग्य) के साथ आगे नहीं बढ़ेगा। मैंने हल किया है कि अब मेरे निष्पादन योग्य में stdole का संदर्भ जोड़कर। मुझे लगता है कि शायद यह काफी अच्छा है।

+3

आप ActiveX घटक के लिए प्रकार एम्बेड नहीं कर सकते हैं। लक्ष्य मशीन में stdole के लिए पीआईए गुम है, कॉपी स्थानीय संपत्ति को सही पर सेट करने का प्रयास करें और उत्पन्न stdole.dll को भी कॉपी करें। –

+0

हंस पासेंट फिर से! आप हर जगह हैं, मैं आज भी आपके सामने एक असंबंधित चीज़ पर आया था। पता नहीं क्यों जॉन स्कीट को सभी प्रेस मिलती है। मैं इसे आज़माउंगा और रिपोर्ट करूंगा। – user12861

+0

@ हंसपैसेंट प्रश्न के लिए अद्यतन देखें – user12861

उत्तर

3

हंस Passant द्वारा उत्तर:

आप एक ActiveX घटक के लिए प्रकार एम्बेड नहीं कर सकते। लक्ष्य मशीन में stdole के लिए पीआईए गुम है, कॉपी स्थानीय संपत्ति को सही पर सेट करने का प्रयास करें और उत्पन्न stdole.dll को भी कॉपी करें।

-2

आप VS10 में एक नई परियोजना बनाते हैं तो वह नेट ढांचे डिफ़ॉल्ट के रूप में 4 ग्राहक प्रोफाइल का उपयोग कर सकते हैं, तो आप परियोजना संपत्तियों में .NET फ्रेमवर्क 4 के लिए लक्ष्य ढांचे सेट कर सकते हैं -> आवेदन टैब पृष्ठ।

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