c# - टाइप या नेमस्पेस नाम मौजूद नहीं है




.net visual-studio-2010 (12)

और यदि सब कुछ विफल हो जाता है, जैसे यह सुनिश्चित करना कि लक्ष्य ढांचे समान हैं, और आप VS2010 में एक WPF क्लास लाइब्रेरी से निपट रहे हैं, तो बस विजुअल स्टूडियो को पुनरारंभ करें। वो मेरे लिए किया गया।

मेरे पास विजुअल स्टूडियो 2010 के साथ निर्मित डब्ल्यूसीएफ डाटा सर्विस प्रोजेक्ट है, जो ठीक काम कर रहा था। अचानक, यह अब संकलित नहीं हुआ। यह मुझे संदेश दे रहा था जैसे:

त्रुटि 7 नाम या नामस्थान 'सेवा' नामस्थान 'सिस्टम' डेटा में मौजूद नहीं है (क्या आप एक असेंबली संदर्भ खो रहे हैं?) सी: \ यू ... एस \ विजुअल स्टूडियो 2010 \ प्रोजेक्ट्स ... \ DataService। सीएस ...

त्रुटि 8 टाइपस्पेस 'सिस्टम' में टाइप या नेमस्पेस नाम 'लिंक' मौजूद नहीं है (क्या आप असेंबली संदर्भ खो रहे हैं?) निर्भरताResolver.cs 3 14

त्रुटि 10 नामस्थान 'System.erviceModel' में टाइप या नेमस्पेस नाम 'वेब' मौजूद नहीं है (क्या आप एक असेंबली संदर्भ खो रहे हैं?)

त्रुटि 12 प्रकार या नामस्थान नाम 'डेटा सेवा' नहीं मिला (क्या आप एक प्रयोग निर्देश या असेंबली संदर्भ खो रहे हैं?)

मेरे द्वारा यह कैसे किया जा सकता है?


जब मैंने LINQ से SQL का उपयोग करने का प्रयास किया तो मुझे एएसपी.नेट एमवीसी साइट के साथ एक ही समस्या का सामना करना पड़ा। मैंने समस्या को हल किया:

समाधान एक्सप्लोरर -> संदर्भ -> System.Data.Linq पर राइट-क्लिक करें -> स्थानीय कॉपी करें (सही)


मुझे सिस्टम के साथ कोई समस्या थी। लिंक्स को पहचाना नहीं जा रहा था। using कथन में एक लाल squiggly था, आदि जिस तरह से मैंने इसे हल किया था, मेरी वेबसाइट को डॉटनेट 3.5 को लक्षित करने के लिए बदलना था, फिर मूल लक्षित ढांचे (4.0 मेरे मामले में) पर वापस स्विच करें।


मुझे एक ही समस्या थी और बिना किसी सफलता के उपर्युक्त सभी की कोशिश की, तो मुझे पता चला कि यह क्या था:

मैंने अपनी परियोजनाओं में से एक में "सिस्टम" नामक एक फ़ोल्डर बनाया था और फिर इसमें एक कक्षा बनाई थी। यह समस्या "सिस्टम" नामक नामस्थान होने से उत्पन्न होती है जब .cs फ़ाइल बनाई जाती है, भले ही यह "MyProject.System" के नामस्थान में हो।

वापस देखकर मैं समझ सकता हूं कि इससे समस्या क्यों पैदा होगी। यह वास्तव में मुझे पहले स्टंप कर दिया गया क्योंकि त्रुटि संदेश प्रारंभ में समस्या से संबंधित प्रतीत नहीं होते हैं।


मुझे एक ही त्रुटि का अनुभव हुआ। मुझे पता चला कि मेरे प्रोजेक्ट में गलत असेंबली नाम था (मैंने एक अलग परियोजना से फ़ाइलों की प्रतिलिपि बनाई थी और नामस्थानों को थोड़ा उलझन में मिला था), और इसे वापस बदल दिया, परियोजना अच्छी तरह संकलित हुई।


मुझे एक ही समस्या है, और मुझे सभी परियोजनाओं के "लक्ष्य ढांचे" को समान बनाना था। फिर यह ठीक बनाया गया। प्रोजेक्ट मेनू पर, ProjectName गुणों पर क्लिक करें। संकलन टैब पर क्लिक करें। उन्नत संकलन विकल्प पर क्लिक करें। लक्ष्य ढांचे में, अपना वांछित ढांचा चुनें।


मेरे मामले में परियोजनाओं में कोई बदलाव नहीं आया था, यह सिर्फ संकलित करना बंद कर दिया गया था और "टाइप या नेमस्पेस नाम XXX मौजूद नहीं है" और शिकायत वर्ग में उस XXX नेमस्पेस / क्लास के लिए इंटेलिजेंस स्वयं ठीक काम करता है। समस्या वास्तव में संदर्भ में थी!

प्रजनन करने कि प्रक्रिया:

  1. समाधान में प्रोजेक्ट ए, प्रोजेक्ट बी है। प्रोजेक्ट ए तीसरे पक्ष के लॉग 4नेट के संदर्भ और यह चिह्नित Copy local: true । ProjectB संदर्भ ProjectA और log4net का संदर्भ नहीं है। समाधान ठीक संकलित करता है।

  2. ProjectA में बदलें: Copy local: false करने के लिए log4net के लिए संदर्भ गुण Copy local: false

  3. स्वच्छ बिन और ओबीजे फ़ोल्डर्स।
  4. जब आप संकलित करते हैं, प्रोजेक्ट ए संकलित करता है लेकिन प्रोजेक्टबी प्रोजेक्ट ए नेमस्पेस नहीं ढूंढने की शिकायत करता है।

This is because ProjectB bin फ़ोल्डर में तृतीय पक्ष लाइब्रेरी (log4net in my case)! गुम है (log4net in my case)!

इस मामले में समाधान होगा -

  1. सुनिश्चित करें कि तृतीय पक्ष पुस्तकालय संदर्भ Copy local: true करने के लिए सेट हैं Copy local: true या
  2. संदर्भ पथ के तहत परियोजना गुणों में ऐसी पुस्तकालयों के लिए पथ जोड़ें।

मेरे मामले में समस्या हो रही थी क्योंकि मेरे द्वारा बनाई गई कक्षा में एक नामस्थान था जो मौजूदा कक्षाओं में हस्तक्षेप करता था। नई कक्षा ए में नेमस्पेस zz.yy.xx था (गलती से)। किसी अन्य नेमस्पेस yy.xx में ऑब्जेक्ट्स के संदर्भ कक्षा ए या अन्य वर्गों में संकलित नहीं थे जिनके नामस्थान zz था।

मैंने कक्षा ए से yy.xx का नामस्थान बदल दिया, जो यह होना चाहिए था, और यह काम करना शुरू कर दिया।


मैंने System.Data.SQLite के साथ एक ही समस्या का अनुभव किया है। समस्या का स्रोत यह है कि आपके द्वारा उपयोग किए जाने वाले डीएलएल में आपके प्रोजेक्ट के साथ .NET संस्करण होना चाहिए।

उदाहरण के लिए यदि आपने .NET 4.5 के लिए SQLite (मेरे मामले में) SQLite का उपयोग किया है, तो आपका प्लेटफ़ॉर्म लक्ष्य .NET 4.5 भी होना चाहिए।

आप प्लेटफ़ॉर्म लक्ष्य: प्रोजेक्ट> (प्रोजेक्ट नाम) गुण> बिल्ड द्वारा पा सकते हैं।


मैंने पाया कि मेरे द्वारा कक्षा नाम ( MyWorld.MyWorld = Namespace.ClassName ) के समान नामस्थान नाम होने के कारण यह हुआ है।

अपना नामस्थान उस नाम पर बदलें जो आपकी कक्षा के समान नाम नहीं है और यह संकलित होगा।

Source


यह देखने के लिए जांचें कि आपके लक्षित ढांचे में समान .NET संस्करण हैं। मुझे एक ही समस्या थी और मेरी कक्षा .NET 3.5 थी और वेब समाधान 4.5 था। मैंने उनको सिंक्रनाइज़ किया, और फिर यह काम किया :)


लिंक किए गए फाइलों के साथ किसी के लिए: मुझे यह समस्या थी और चांदी की रोशनी और अपमानजनक फ़ाइल का उपयोग कर रहा था जो इस त्रुटि को फेंक रहा था एक लिंक फ़ाइल थी।

कंपाइलर की त्रुटि ने मुझे बताया कि फ़ाइल में मौजूद फाइल में त्रुटि हो रही थी। यह समाप्त हो गया कि उस प्रोजेक्ट में त्रुटि नहीं थी, यह उस प्रोजेक्ट में हो रहा था जिसमें लिंक की गई फ़ाइल थी। उस परियोजना में एक संदर्भ गुम था।





visual-studio