c# - इंटरऑप प्रकार एम्बेडेड नहीं किया जा सकता है




visual-studio-2010 visual-studio (6)

मैं सी # में .NET 4.0 ढांचे (बीटा 2) पर एक वेब अनुप्रयोग बना रहा हूं।

जब मैं "ActiveHomeScriptLib" नामक एक असेंबली का उपयोग करने का प्रयास करता हूं, तो मुझे निम्न त्रुटि मिलती है:

इंटरऑप प्रकार 'ActiveHomeScriptLib.ActiveHomeClass' को एम्बेड नहीं किया जा सकता है। इसके बजाय लागू इंटरफेस का प्रयोग करें।

जब मैं फ्रेम 3.5 को फ्रेमवर्क में बदलता हूं, तो मुझे कोई त्रुटि नहीं होती है।

एक इंटरऑप प्रकार क्या है और यह केवल तभी होता है जब मैं 4.0 ढांचे का उपयोग करता हूं?


.NET 4.0 आपकी असेंबली में एम्बेडेड होने के लिए प्राथमिक इंटरऑप असेंबली (या इसके बजाय, आपको जिस बिट की आवश्यकता है) की अनुमति देता है ताकि आपको अपने एप्लिकेशन के साथ उन्हें तैनात करने की आवश्यकता न हो।

किसी भी कारण से, इस असेंबली को एम्बेड नहीं किया जा सकता है - लेकिन ऐसा लगता है कि यह आपके लिए कोई समस्या नहीं है। विजुअल स्टूडियो 2010 में असेंबली के लिए बस प्रॉपर्टी टैब खोलें और "फाल्स" में "एम्बेड इंटरप प्रकार" सेट करें।

संपादित करें: माइकल गस्टस का answer भी देखें, जिस प्रकार आप उपयोग कर रहे हैं उससे Class प्रत्यय को हटा दें।


जनवरी की तरह मुझे इसे पाने में थोड़ी देर लग गई .. = एस तो किसी और के लिए जो निराशा से अंधा हो गया है।

  • अपने प्रोजेक्ट संदर्भों के तहत समाधान एक्सप्लोरर में जोड़े गए अपमानजनक असेंबली पर राइट क्लिक करें। (मेरे मामले में डब्ल्यूआईए)
  • गुण क्लिक करें।
  • और एम्बेड इंटरप असेंबली के लिए वहां विकल्प होना चाहिए
  • इसे गलत पर सेट करें

ज्यादातर मामलों में, यह त्रुटि कोड का परिणाम है जो COM ऑब्जेक्ट को तुरंत चालू करने का प्रयास करती है। उदाहरण के लिए, एक्सेल शुरू करने वाले कोड का एक टुकड़ा यहां दिया गया है:

Excel.ApplicationClass xlapp = new Excel.ApplicationClass();

आम तौर पर, .NET 4 में आपको केवल 'कक्षा' प्रत्यय को हटाने और कोड को संकलित करने की आवश्यकता होती है:

Excel.Application xlapp = new Excel.Application();

एक एमएसडीएन स्पष्टीकरण here


मुझे Office 2007 के साथ VB.NET 2013 में एक ही समस्या थी, और इससे हल हो गया:

वीएस 2013 वीबी.नेट परियोजना> प्रॉप्स> रेफरी> माइक्रोसॉफ्ट वर्ड 12.0 ऑब्जेक्ट लिब> एम्बेड इंटरऑप प्रकार: गलत से गलत बदलें


विजुअल स्टूडियो 2012 में एम्बेड इंटरफ़ेस सेट करने के लिए यहां बताया गया है


समाधान मिला

संदर्भों पर जाएं वांछित डीएल पर क्लिक करें, आपको "गलत इंटरफ़ेस प्रकार" विकल्प "गलत" या "ट्रू" विकल्प मिलेगा।





c#-4.0