"नाम या नाम स्थान नहीं मिल सका" लेकिन सब कुछ ठीक लगता है?


276

मुझे एक मिल रहा है:

प्रकार या नामस्थान नाम नहीं मिला

VS2010 में C # WPF ऐप के लिए त्रुटि। कोड का यह क्षेत्र ठीक संकलन कर रहा था, लेकिन अचानक मुझे यह त्रुटि मिल रही है। मैंने प्रोजेक्ट संदर्भ और usingकथन को हटाने की कोशिश की है , VS2010 को बंद करके फिर से शुरू किया है, लेकिन अभी भी मेरे पास यह मुद्दा है।

कोई भी विचार क्यों यह हो सकता है, जहां ऐसा लगता है कि मैं सही काम कर रहा हूं संदर्भ और usingकथन?

मैंने VS2010 में यह भी उल्लेख किया है कि उस नाम स्थान के लिए intellisense ठीक काम कर रहा है, इसलिए ऐसा लगता है जैसे VS2010 में परियोजना संदर्भ है और एक तरफ नामस्थान देख रहा है, लेकिन संकलन के दौरान यह नहीं दिखता है?


यह Visual Studio को बंद करने और पुनः आरंभ करने के लिए काम कर सकता है। यह कभी-कभी "अटक" लगता है
रिस एडम्स

2
मार्गदर्शन: 1) असेंबली लोडेड ?, 2) असेंबली लोडेड ओरिजिनल असेंबली के साथ मैच ?, 3) "पुराने या कोई भी वैध संदर्भों की ओर इशारा करते हुए निर्देशों का उपयोग कर रहे हैं?" संपूर्ण समाधान में (प्रत्येक कक्षा पुस्तकालय और परियोजना)। 5) नेट फ्रेमवर्क वर्जन बिल्ड ऑप्शन के लिए प्रोजेक्ट सेटिंग्स की जांच करें (इस तरह की प्रोबलेन में टीमों को लाएं, आपको सहमत होना चाहिए। दोनों फ्रैमेव का निर्माण करना चाहिए। दोनों पक्षों में वर्जन तैयार करें) 6) उसके बाद अलग-अलग और अंत में सभी को साफ करके और सभी में शामिल करें। गंतव्य परियोजना / कक्षा पुस्तकालय के लिए। मुझे काम करना चाहिए!
फेलिक्स अबली

जाँच करें कि क्या आपने dll संदर्भित किया है। Dll आपके समाधान निर्देशिका के बिन फ़ोल्डर के अंदर स्थित है।
अभिषेक पूजन २६'१६ को

जवाबों:


470

यह दो परियोजनाओं के बीच एक .Net फ्रेमवर्क संस्करण असंगति का परिणाम हो सकता है।

यह दो तरह से हो सकता है:

  1. एक ग्राहक प्रोफ़ाइल परियोजना एक पूर्ण रूपरेखा परियोजना का उल्लेख; या
  2. पुराने फ्रेमवर्क संस्करण एक नए फ्रेमवर्क संस्करण को लक्षित करते हैं

उदाहरण के लिए, ऐसा तब होगा जब कोई अनुप्रयोग .Net 4 क्लाइंट प्रोफाइल फ्रेमवर्क को लक्षित करने के लिए सेट किया गया हो, और यह जिस प्रोजेक्ट को संदर्भित करता है, वह पूर्ण .Net 4 फ्रेमवर्क को लक्षित करता है।

तो यह स्पष्ट करने के लिए:

  • प्रोजेक्ट ए क्लाइंट प्रोफाइल फ्रेमवर्क को लक्षित करता है
  • प्रोजेक्ट ए संदर्भ प्रोजेक्ट बी
  • प्रोजेक्ट बी पूर्ण रूपरेखा को लक्षित करता है

इस मामले में समाधान या तो एप्लिकेशन (प्रोजेक्ट ए) के फ्रेमवर्क लक्ष्य को अपग्रेड करना है, या संदर्भित विधानसभा (प्रोजेक्ट ए) के लक्ष्य को डाउनग्रेड करना है। क्लाइंट प्रोफाइल फ्रेमवर्क असेंबली का संदर्भ / उपभोग करने के लिए एक पूर्ण फ्रेमवर्क ऐप के लिए यह ठीक है, लेकिन दूसरे तरीके से नहीं (क्लाइंट प्रोफाइल पूर्ण फ्रेमवर्क असेंबली लक्षित नहीं कर सकता)।

ध्यान दें कि जब आप VS2012 या VS2013 में एक नया प्रोजेक्ट बनाते हैं (जो .Net 4.5 को डिफ़ॉल्ट फ्रेमवर्क के रूप में उपयोग करता है) और:।

  • संदर्भ परियोजना (एस) का उपयोग .Net 4.0 (यह तब आम है जब आप VS2010 से VS2012 या VS2013 में चले गए हैं और फिर आप एक नई परियोजना जोड़ते हैं)

  • संदर्भित परियोजनाएं अधिक संस्करण अर्थात 4.5.1 या 4.5.3 का उपयोग करती हैं (आपने अपनी मौजूदा परियोजनाओं को नवीनतम संस्करण में फिर से लक्षित किया है, लेकिन वीएस अभी भी v4.5 को लक्षित करने वाली नई परियोजनाएं बनाता है, और आप फिर उन पुरानी परियोजनाओं का संदर्भ देते हैं नया काम)


2
उत्कृष्ट - यह काम किया - मुझे अपने WPF ऐप क्लाइंट को पूर्ण .NET फ्रेमवर्क का उपयोग करने के लिए अपग्रेड करना पड़ा। 4. सुनिश्चित नहीं करें कि ग्राहक की छाप पर इसका क्या प्रभाव पड़ेगा? मैंने जब मैं .Net 4 क्लाइंट प्रोफ़ाइल को लायब्रेरी को अपग्रेड करने का प्रयास किया था, लेकिन जब मैंने ऐसा किया था तो हाल ही में क्वार्ट्ज.नेट थ्री पार्टी लाइब्रेरी के साथ इसी तरह के मुद्दे थे जिनका मैंने अभी उपयोग करना शुरू किया था। तो ऐसा लगता है कि मेरे पुस्तकालय प्रोजेक्ट में Quartz.net का उपयोग करना अंततः मुझे अपने UI UI एप्लिकेशन में पूर्ण .Net 4 ढांचे का उपयोग करने के लिए मजबूर कर रहा है।
ग्रेग

3
धन्यवाद - इससे अभी मदद मिली। मैंने हाल ही में VS2010 से VS2012 का समाधान निकाला, और VS2012 में एक नई क्लास लाइब्रेरी बनाई। अचानक मुझे यह त्रुटि मिल रही थी, और निश्चित रूप से यह इसलिए था क्योंकि नई कक्षा के पुस्तकालय ने .NET 4.5 को लक्षित किया था जबकि परियोजना संदर्भित ने .NET 4.0 को लक्षित किया था। 4.0 को लक्षित करने के लिए नई लाइब्रेरी को अपग्रेड करना इसे तय किया।
रिचर्ड

22
वास्तव में अच्छा होगा यदि विज़ुअल स्टूडियो आपको इस बारे में कुछ संकेत दे!
जेसन कॉयन

3
हालाँकि यह उत्तर इस बात का शानदार विवरण देता है कि क्या करने की आवश्यकता है ... इसका कोई सुझाव नहीं है कि इसे कैसे किया जाए, जो एक अच्छा जोड़ होगा
जॉन स्टोरी

1
यहां तक ​​कि हम में से सबसे अच्छा कभी-कभी बस कुछ कार्यों को करने की आवश्यकता नहीं थी। मुझे यकीन नहीं है कि मुझे फ्रेमवर्क को बदलने की आवश्यकता कभी नहीं हुई है और हालांकि मुझे अब यह मिल गया है, यह मुझे पहले नहीं हुआ था। यह जवाब के लिए एक सौदा ब्रेकर नहीं है, बस मुझे लगता है कि 'समस्या का वर्णन, समाधान बताएं, इसे कैसे ठीक किया जाए' के ​​लिए वन स्टॉप शॉप के रूप में बहुत अच्छे उत्तर मिलते हैं
जॉन स्टोरी

50

नौगट संकुल को पुनः स्थापित करने ने मेरे लिए चाल चली। जब मैंने .NET फ्रेमवर्क संस्करणों को सभी परियोजनाओं के लिए सिंक में बदल दिया, तब कुछ नगेट पैकेज (विशेष रूप से एंटिटी फ्रेमवर्क) अभी भी पिछले संस्करणों में स्थापित थे। संकुल प्रबंधक कंसोल में यह कमांड पूरे समाधान के लिए संकुल को पुनर्स्थापित करता है:

Update-Package reinstall

मेरे सामने जो समस्या थी वह यह थी कि मैंने एक नया समाधान बनाया, कि मैंने एक Nuget पैकेज का एक अलग संस्करण जोड़ा, अन्य की तुलना में इसका उपयोग किया जाता है। फिर, जब मैं भागा तो Update-Package -reinstallमेरे पास सभी समाधानों में कई त्रुटियां थीं, जिसमें इस पैकेज का एक अलग संस्करण शामिल था। मैंने सभी में अपडेट किया फिर यह आखिरकार चला। इसने पैकेज में संदर्भ भी तय किए। 45 से 452 तक की फाइलें, क्योंकि मैंने समय से पहले लक्ष्य संस्करण भी बदल दिया था।
19dám Kovács

मेरे लिए काम किया और मुझे अपग्रेड करते समय संदर्भों से Sytems.Net.Http निकालना पड़ा
बिनिल एंटो

1
मेरे लिए भी यही काम किया गया। उसके बाद कमांड को अन-रन किया, जिसके परिणामस्वरूप लंबित परिवर्तन हुए और मेरी
स्लाइन

इसने मेरे लिए काम किया, इसने मुझे एक संदर्भ दिखाया जो कि मेरे वर्तमान ढांचे के साथ समर्थित नहीं था
एडलेरी

इसने मेरे लिए काम किया और जो त्रुटि दूर हुई वह पूरी तरह से स्थापित किसी भी नगेट पैकेज से असंबंधित थी।
सीएडी

31

मुझे नहीं पता कि यह क्यों काम किया, लेकिन मैंने परियोजना का संदर्भ हटा दिया कि VS2015 मुझे बता रहा था कि यह नहीं मिल सकता है, और इसे फिर से जोड़ा। समस्या का हल किया। मैं दोनों को साफ करने की कोशिश कर रहा था, कोई फायदा नहीं हुआ।


जब भी वीएस समाधान के भीतर किसी भी संदर्भ मुद्दे को खोजने के लिए इस चाल की अत्यधिक अनुशंसा करें। .NET फ्रेमवर्क के एक उच्च संस्करण को लक्षित करने वाली एक नई परियोजना में जुड़ने के बाद मैंने वीएस २०१ VS में अपनी समस्या को हल किया। मुझे यकीन है कि कुछ कैशिंग क्लियर किया गया है।
थीमफील्ड

1
यहाँ भी: यह वही है जो मदद की है (मैं भी अन्य संस्करण मुद्दों नहीं था)। मुझे हर उस फ़ाइल के लिए त्रुटि संदेश मिला, जो 400+ तक खुली थी ... हालाँकि बिल्डिंग / रनिंग कोई समस्या नहीं थी। इसके अलावा: ReSharper के समाधान-विस्तृत-विश्लेषण में भी वही त्रुटियां दिखाई दीं।
माइक

इस ट्रिक से मुझे भी मदद मिली। कोई लक्ष्य संस्करण अंतर भी नहीं था। बिल्डिंग संभव था, राइडर ने कोई समस्या नहीं दिखाई लेकिन वीएस ने जोर देकर कहा कि सभी परियोजना संदर्भ गायब थे ...
डैनियल लेर्प्स

कंपाइलर प्रोजेक्ट बिल्ड ऑर्डर के अनुसार संकलित करता है, इसलिए यदि किसी प्रोजेक्ट में वास्तविक त्रुटि होती है तो वह लाल-हेरिंग के समुद्र में खो सकता है "प्रकार या नाम स्थान" त्रुटियों को नहीं पाया जा सकता है - क्योंकि यह केवल तब निकलता है जब इसे पाता है त्रुटि, और संदर्भों को अद्यतन करने के लिए नहीं मिलता है। यदि बहुत अधिक त्रुटियां सूचीबद्ध नहीं हैं, तो आपको वास्तविक त्रुटि खोजने में सक्षम होना चाहिए। दुर्भाग्य से मेरे लिए उनमें से 100 थे, इसलिए इस चाल ने वास्तव में मेरी मदद की। मुझे लगता है कि इंटेलिजेंस बिल्ड ऑर्डर की परवाह नहीं करता है और बस परियोजनाओं को व्यक्तिगत रूप से संकलित करता है, और यही कारण है कि आपको इंटेलिजेंस त्रुटियां नहीं मिलती हैं।
केव

29

समाधान का निर्माण करते समय मुझे वही त्रुटि मिल रही थी (प्रकार या नाम स्थान '' नहीं मिल सका)। इसके नीचे मुझे एक चेतावनी दिखाई दी कि "संदर्भ हल नहीं किया जा सका" और यह सुनिश्चित करने के लिए कि "डिस्क पर असेंबली मौजूद है"।

मैं बहुत उलझन में था, क्योंकि मेरा डीएलएल उस स्थान पर बहुत स्पष्ट रूप से था जिसे संदर्भ इंगित कर रहा था। वीएस ने किसी भी त्रुटि को उजागर नहीं किया, जब तक कि मैंने समाधान बनाने की कोशिश नहीं की।

मुझे अंततः समस्या का एहसास हुआ (या कम से कम मुझे जो संदेह था वह समस्या थी)। मैं उसी समाधान में लाइब्रेरी फ़ाइल का निर्माण कर रहा था। इसलिए भले ही यह डिस्क पर मौजूद था, इसे उस स्थान पर फिर से बनाया जा रहा था (किसी तरह पुस्तकालय की प्रक्रिया में मेरी दूसरी परियोजना को फिर से बनाया जा रहा है - उसी समाधान में - जो पुस्तकालय को संदर्भित करता है, ने तय किया होगा कि पुस्तकालय मौजूद नहीं था)

जब मैंने प्रोजेक्ट पर राइट-क्लिक किया और संपूर्ण समाधान के बजाय केवल उसे बनाया, तो मुझे त्रुटि नहीं मिली।

इस समस्या को ठीक करने के लिए मैंने उस परियोजना के लिए एक निर्भरता के रूप में पुस्तकालय को जोड़ा जो इसका उपयोग कर रहा था।

यह करने के लिए:

  1. मैंने समाधान एक्सप्लोरर में अपने समाधान पर राइट-क्लिक किया और "गुण" का चयन किया
  2. फिर "कॉमन प्रॉपर्टीज़" में मैंने "प्रोजेक्ट डिपेंडेंसीज़" को चुना।
  3. फिर प्रोजेक्ट्स ड्रॉप-डाउन मेनू में मैंने उस प्रोजेक्ट का चयन किया जो लाइब्रेरी पर निर्भर था, और
  4. "डिपेंड्स ऑन" के तहत मिली लाइब्रेरी के बगल में स्थित बॉक्स को चेक किया

यह सुनिश्चित करता है कि पुस्तकालय परियोजना पहले निर्मित हो जाए।


2
चेतावनी को देखने के लिए टिप के लिए धन्यवाद। मेरी समस्या यह थी कि मेरे टेस्ट प्रोजेक्ट को Bcl के लिए NuGet पैकेज को स्थापित करने की आवश्यकता थी क्योंकि मेरा मुख्य प्रोजेक्ट इसे संदर्भित कर रहा था।
किम

धन्यवाद! इसने मुझे उस मुद्दे को खोजने के लिए प्रेरित किया जो मैं कर रहा था। यह बताता है कि मेरे पास निर्भरता परियोजना के दो संदर्भ थे , और जो पूर्वता ले रहा था वह बिन फ़ोल्डर में पहले से निर्मित DLL था। मैंने DLL और दुष्ट संदर्भ को हटा दिया और एक पुनर्निर्माण किया, सब कुछ सही ढंग से संकलित किया।
क्रिस डेविस

7

पहले मैं यह सत्यापित करूंगा कि आपके प्रोजेक्ट की जनरेट की गई जानकारी भ्रष्ट नहीं है। अपने समाधान पर एक साफ और पुनर्निर्माण करें।

यदि वह मदद नहीं करता है, तो एक बात जो मैंने डिज़ाइनर मुद्दों के लिए अतीत में देखी है, एक विंडोज़ फॉर्म प्रोजेक्ट खोल रहा है, फिर इसे फिर से बंद कर रहा है। यह थोड़ा चिकन-एन्ट्रिल-ईश है, हालांकि, इसलिए अपनी सांस को रोककर न रखें।


मैंने आपके समाधान पर साफ और पुनर्निर्माण करने की कोशिश की, लेकिन कोई भाग्य नहीं। बस WPF ऐप प्रोजेक्ट को हटाने / जोड़ने / सफाई / पुनर्निर्माण की कोशिश की और अभी भी कोई किस्मत नहीं। :(
ग्रेग

एक पुनर्निर्माण के बाद एक स्वच्छ इस मुद्दे को तय किया। हालाँकि, यह समस्या हर दिन पॉप अप होती है। कम से कम मैं अपनी चीजों को तब तक प्राप्त कर सकता हूं जब तक कि मैं इसे पूरी तरह से हल नहीं करता।
वलमास

5

मेरे द्वारा चलायी गई एक पेचीदा स्थिति: परियोजना एक ने Microsoft.Bcl.Asyncस्थापित किए गए पैकेज के साथ 4.0 पूर्ण रूपरेखा को लक्षित किया। प्रोजेक्ट दो को 4.0 पूर्ण फ्रेमवर्क लक्षित करता है, लेकिन प्रोजेक्ट एक वर्ग के संदर्भ में संकलित नहीं करेगा।

एक बार जब मैंने दूसरे प्रोजेक्ट पर Async NuGet पैकेज स्थापित किया तो यह ठीक संकलित हुआ।


1
इसके लिए आह धन्यवाद। मेरा पोर्टेबल प्रोजेक्ट ज़मरीन स्टूडियो पर ठीक संकलित कर रहा था, जबकि यह इस वजह से विजुअल स्टूडियो पर विफल होगा। मुझे लगता है कि xs कुछ 'जादू' करता है जब संकलित संदर्भ गायब हो जाते हैं।
निकोला इराओकी

5

मेरे मामले में, मुझे लगता है कि VisualStudio में संदर्भ एक त्रिकोण है, और इस छवि के रूप में एक विस्मयादिबोधक चिह्न है,

फिर, मैं इसे हटाने के लिए राइट क्लिक करता हूं, और dll संदर्भ को फिर से सही ढंग से जोड़ता हूं, समस्या हल हो गई थी।


4

यह एक मेरे लिए काम किया। आपकी कक्षा में, जहाँ कक्षा का नाम परिभाषित किया गया है, उदाहरण के लिए: सार्वजनिक वर्ग ABC, एक वर्ण निकालें और थोड़ा प्रतीक्षा करें। आप त्रुटि सूची में वृद्धि करेंगे क्योंकि आपने नाम बदल दिया है। अब उस पात्र को वापस रख दें, जिसे आपने टाइप किया है। इसने मेरे लिए काम किया, उम्मीद है कि यह आपके लिए भी काम करेगा। शुभ लाभ!!!


4

मेरे पास एक समान मुद्दा था: कंपाइलर एक ही प्रोजेक्ट के अंदर एक फ़ोल्डर का पता लगाने में असमर्थ था , इसलिए उस फ़ोल्डर को जोड़ने वाले निर्देश का उपयोग करके एक त्रुटि उत्पन्न हुई। मेरे मामले में, फ़ोल्डर का नाम बदलने से समस्या उत्पन्न हुई । भले ही मैंने उस फ़ोल्डर के अंदर सभी कक्षाओं के नाम स्थान को अपडेट किया, लेकिन परियोजना की जानकारी किसी तरह अपडेट करने में विफल रही। मैं सब कुछ करने की कोशिश की: .so फ़ाइल और बिन और obj फ़ोल्डर्स को हटाने, समाधान की सफाई, परियोजना को फिर से लोड करना - कुछ भी मदद नहीं की। मैंने फ़ोल्डर और कक्षाओं को अंदर हटाकर, एक नया फ़ोल्डर बनाने और उस नए फ़ोल्डर में नई कक्षाएं बनाने से समस्या का समाधान किया (बस नए फ़ोल्डर के अंदर कक्षाओं को स्थानांतरित करने से कोई मदद नहीं मिली)।

पुनश्च: मेरे मामले में मैं एक वेब एप्लिकेशन पर काम कर रहा था, लेकिन विभिन्न प्रकार की परियोजनाओं में यह समस्या हो सकती है।


3

[फेसपालम] मेरा मुद्दा यह था कि मैंने चीजों को करने के C ++ तरीके में निर्भरता को जोड़ा था।

उस प्रोजेक्ट पर जाएं जो निर्माण नहीं करेगा, समाधान एक्सप्लोरर में 'संदर्भ' फ़ोल्डर खोलें, और देखें कि क्या आपकी निर्भरता सूचीबद्ध है।

यदि नहीं, तो आप 'संदर्भ जोड़ सकते हैं' और प्रोजेक्ट टैब पर निर्भरता चुन सकते हैं।

बूम शंकर।


2

हमारे पास इसका एक अजीब मामला था जिसे मैंने बस एक समाधान में तय किया था। मुख्य परियोजना में "उपयोग" बयान के सामने एक छिपा / व्हाट्सएप चरित्र था। यह परियोजना ठीक निर्माण करेगी और वेबसाइट ने ठीक काम किया, लेकिन इकाई परीक्षण परियोजना जिसने इसे संदर्भित किया वह निर्मित नहीं की जा सकती थी।


2

VS2008 से VS2012 तक मौजूदा परियोजनाओं को अपग्रेड करते समय मुझे इस समस्या का सामना करना पड़ा। मैंने पाया कि दो प्रोजेक्ट (केवल दो जो मैंने बनाए थे) अलग-अलग .Net फ्रेमवर्क (3.5 और 4.0) को लक्षित कर रहे थे। मैंने यह सुनिश्चित करते हुए परियोजनाओं के अनुप्रयोग टैब पर हल किया कि दोनों परियोजनाओं में ".NET फ्रेमवर्क 4" लक्ष्य फ्रेमवर्क बॉक्स में था।


2

समान त्रुटियां थीं, मेरी कहानी निम्नलिखित थी: खराब विलय के बाद (git के माध्यम से) मेरी .csproj फ़ाइलों में से एक में डुप्लिकेट compileप्रविष्टियाँ थीं:

<Compile Include="Clients\Tree.cs" />
<Compile Include="Clients\Car.cs" />
<Compile Include="Clients\Tree.cs" />        //it's a duplicate

यदि आपके पास एक बड़ा समाधान है और त्रुटियों वाली विंडो में 300 से अधिक संदेश हैं तो इस मुद्दे का पता लगाना मुश्किल है। इसलिए मैंने नोटपैड के माध्यम से क्षतिग्रस्त .csproj फ़ाइल खोली है और डुप्लिकेट प्रविष्टियों को हटा दिया है। मेरे मामले में काम किया।


1
वीएस 2019 में एक खराब मर्ज के साथ मेरा भी ऐसा ही मुद्दा था। यह प्रोजेक्ट सफलतापूर्वक संकलित हुआ, लेकिन समाधान नहीं। वास्तव में उस परियोजना के लिए एक त्रुटि थी (बहुत अजीब)। एक अतिरिक्त फ़ाइल के संदर्भित होने के कारण यह विफल हो रहा था जिसे पहले हटा दिया गया था, लेकिन फिर एक मर्ज से पुनः जोड़ा गया। मैंने फ़ाइल को हटा दिया, .csproj फ़ाइल को साफ किया, फिर से बनाया, और सभी संदर्भों ने फिर से काम करना शुरू कर दिया।
क्रिप्टोकरंसी

2

मुझे चर्चा के रूप में एक ही समस्या थी: VS 2017 संदर्भित प्रोजेक्ट में एक वर्ग को त्रुटि के रूप में रेखांकित करता है लेकिन समाधान ठीक बनाता है और यहां तक ​​कि अंतर्मुखी काम भी करता है।

यहां बताया गया है कि मैं इस समस्या को हल करने में कैसे कामयाब रहा:

  1. संदर्भित प्रोजेक्ट को अनलोड करें
  2. वीएस में फ़ाइल .proj फ़ाइल (मैं किसी को यहाँ सुझाए गए डुप्लिकेट की तलाश कर रहा था)
  3. पुनः लोड करें परियोजना (मैंने proj फ़ाइल नहीं बदली या नहीं बची क्योंकि मेरे पास कोई डुप्लिकेट नहीं था)

1

आप उस कोड को समाप्त करने का भी प्रयास कर सकते हैं जो आपको लगता है कि आपको समस्या है और यह देखने के लिए कि क्या यह उस कोड के संदर्भ में नहीं है। यदि नहीं, तो चीजों को ठीक करें जब तक कि यह फिर से संकलित न हो जाए, और फिर अपने संदिग्ध समस्या कोड को वापस काम करें । कभी-कभी मुझे कक्षाओं या विधियों के बारे में अजीब त्रुटियां मिलती हैं जो मुझे पता है कि जब कंपाइलर कुछ और पसंद नहीं करते हैं तो मैं सही हूं। एक बार जब मैं इस बात को ठीक कर लेता हूं कि यह वास्तव में लटका हुआ है, तो ये 'फैंटम' त्रुटियां गायब हो जाती हैं।


1

मुझे पता है कि यह एक मृत घोड़े को मार रहा है, लेकिन मुझे यह त्रुटि और रूपरेखा ठीक थी। मेरी समस्या मूल रूप से यह कह रही थी कि एक इंटरफ़ेस नहीं मिल सकता है, फिर भी यह ठीक से निर्मित और एक्सेस करता है। इसलिए मैं सोच में पड़ गया: "जब अन्य ठीक काम कर रहे हैं तो यह इंटरफ़ेस ही क्यों?"

यह समाप्त हो गया कि मैं वास्तव में एक एंडपॉइंट के इंटरफेस के साथ WCF का उपयोग करते हुए एक सेवा का उपयोग कर रहा था जो कि Entity Version 6 का उपयोग कर रहा था और बाकी परियोजनाएं संस्करण 5 का उपयोग कर रही थीं। NuGet का उपयोग करने के बजाय मैंने पुन: उपयोग के लिए एक स्थानीय रिपॉजिटरी में nuget संकुल की प्रतिलिपि बनाई और उन्हें अलग-अलग सूचीबद्ध किया।

जैसे EntityFramework6.dll बनाम EntityFramework.dll

मैंने फिर क्लाइंट प्रोजेक्ट और पूफ के संदर्भ जोड़े, मेरी त्रुटि दूर हो गई। मुझे लगता है कि यह एक किनारे का मामला है क्योंकि ज्यादातर लोग एंटिटी फ्रेमवर्क के संस्करणों को नहीं मिलाएंगे।


1

मिश्रण में मेरे समाधान को जोड़ना क्योंकि यह थोड़ा अलग था और मुझे यह पता लगाने में थोड़ा समय लगा।

मेरे मामले में मैंने एक परियोजना में एक नई कक्षा जोड़ी, लेकिन क्योंकि मेरे संस्करण नियंत्रण बाइंडिंग सेट नहीं थे, इसलिए मुझे विजुअल स्टूडियो (वीसी के माध्यम से) के बाहर फ़ाइल को लिखने योग्य बनाने की आवश्यकता थी। मैंने विजुअल स्टूडियो में सेव को रद्द कर दिया था, लेकिन मैंने वीएस के बाहर फाइल राइट करने के बाद वी। एस। में फिर से सेव ऑल मारा। इसने अनजाने में नई श्रेणी की फाइल को परियोजना में सहेजे नहीं जाने का कारण बना दिया..जब भी..अभी भी इसे नीली के रूप में दिखाया गया था और संदर्भ परियोजनाओं में भी मान्य था, हालांकि जब मैं फ़ाइल को पुनः प्राप्त करने की कोशिश करूँगा तो पाया नहीं गया और मिल गया! टाइप त्रुटि नहीं मिली। विजुअल स्टूडियो को बंद करना और खोलना अभी भी समस्या को दिखाता है (लेकिन अगर मैंने ध्यान दिया हो तो क्लास की फाइल फिर से गायब हो गई थी)।

एक बार जब मुझे यह एहसास हुआ, तो यह तय करना आसान था: प्रोजेक्ट फ़ाइल को राइट करने योग्य करने के लिए, प्रोजेक्ट में गुम फ़ाइल को पढ़ें। सभी अब ठीक बनाता है।


1

मेरी भी यही समस्या थी। एक रात मेरी परियोजना अगली सुबह ERRORS संकलित करेगी!

मुझे अंततः पता चला कि दृश्य स्टूडियो ने मेरे कुछ संदर्भों को "ट्वीक" करने का फैसला किया और उन्हें कहीं और इंगित किया। उदाहरण के लिए:

System.ComponentModel.ISupportInitialize किसी तरह "blahblah.System.ComponentModel.ISupportInitialize" बन गया

अगर तुम मेरे रूप में करने के लिए बनाम के लिए एक कठोर बात है


1

यह घटना Visual Studio 2017 में होती है।

  1. Visual Studio को पुनरारंभ करें
  2. स्वच्छ परियोजना जो बनाने में विफल है।
  3. परियोजना का पुनर्निर्माण करें।

1

मेरा मामला यहां चर्चा के समान था, लेकिन जब तक मैंने System.Coreसंदर्भ सूची से संदर्भ हटा नहीं दिया, तब तक कुछ भी हल नहीं हुआ (इसके बिना सब कुछ ठीक हुआ)

आशा है कि यह किसी की मदद करेगा क्योंकि यह मुद्दा काफी निराशाजनक है


यह मेरे लिए सटीक मुद्दा था। मैंने System.Core और पुनर्निर्माण को हटा दिया, त्रुटियों ने तुरंत खुद को हल किया। मुझे सिरदर्द से बचाने के लिए एक लाख धन्यवाद
user1959309


1

मेरे मामले में मेरे पास एक वर्ग था जो उचित स्रोत फ़ोल्डर में सूचीबद्ध था, लेकिन समाधान एक्सप्लोरर में पंजीकरण नहीं कर रहा था। मुझे प्रोजेक्ट को राइट क्लिक करना था> मौजूदा आइटम जोड़ें और मैन्युअल रूप से उस कक्षा का चयन करें जो उसने कहा था कि वह गायब है। फिर सब कुछ ठीक चला!


1

मेरे मामले में समस्या यह थी कि नेमस्पेस को ठीक उसी तरह से बदलने के बाद जैसा कि किसी अन्य परियोजना में है (जानबूझकर), असेंबली का नाम वीएस द्वारा भी बदल दिया गया था, इसलिए एक ही नाम के साथ दो विधानसभाएं थीं, एक दूसरे को ओवरराइड करना


इसे सही नाम में बदलने के लिए मैं असेंबली का नाम कहां संपादित कर सकता हूं?
मैट्ज़ १३

1
परियोजना फ़ाइल में (.csproj) मैन्युअल रूप से या परियोजना पर राइट-क्लिक करके -> गुण
user1121956

0

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


0

किसी को भी यह त्रुटि हो रही है जब वे अपनी वेबसाइट को Azure में प्रकाशित करने का प्रयास करते हैं, तो ऊपर दिए गए आशाजनक समाधानों में से किसी ने भी मेरी मदद नहीं की। मैं एक ही नाव में था - मेरा हल अपने आप ठीक हो गया। मैंने समाप्त कर दिया

  1. मेरे समाधान में सभी नगेट पैकेज निकालें।
  2. बंद करें और मेरे समाधान को फिर से खोलें।
  3. सभी नगेट पैकेजों को पुनः जोड़ें।

थोड़ा दर्दनाक, लेकिन एकमात्र तरीका था कि मैं अपनी वेबसाइट को Azure में प्रकाशित कर सकूं।


0

मुझे एक एजेंट के रूप में अपने स्थानीय मशीन पर चलने वाले विजुअल स्टूडियो टीम सर्विसेज बिल्ड के साथ निर्माण करने की कोशिश में यह त्रुटि मिली।

यह मेरे नियमित कार्यक्षेत्र में ठीक काम करता है और मैं स्थानीय रूप से एजेंट फ़ोल्डर के भीतर एसएलएन फ़ाइल खोलने में सक्षम था और सब कुछ ठीक संकलित किया गया था।

प्रश्न में DLL को प्रोजेक्ट के भीतर संग्रहीत किया गया था Lib/MyDLL.DLLऔर इसे csproj फ़ाइल में संदर्भित किया गया था:

<Reference Include="MYDLL, Version=2009.0.0.0, Culture=neutral, PublicKeyToken=b734e31dca085caa">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>Lib\MYDLL.dll</HintPath>
</Reference>

यह पता चला कि यह शाब्दिक रूप से संकेत पथ के बावजूद फ़ाइल नहीं ढूंढ रहा था। मुझे लगता है कि शायद msbuild परियोजना फ़ाइल के बजाय SLN फ़ाइल के सापेक्ष दिख रहा था।

किसी भी स्थिति में यदि आपको मिलने वाला संदेश Could not resolve this reference. Could not locate the assemblyसुनिश्चित हो जाता है कि DLL एक सुलभ स्थान पर msbuild है।

मैंने एक तरह का धोखा दिया और एक संदेश मिला, जिसमें कहा गया था Considered "Reference\bin\xxx.dll"और बस इसके बजाय dlls की नकल की।


0

मेरे मामले में, संदर्भ के रूप में dll को जोड़ने से type or namespace name could not be foundत्रुटि हुई। हालाँकि, बिन फ़ोल्डर में सीधे dll फ़ाइल को कॉपी और पेस्ट करने से त्रुटि हल हो गई।

पता नहीं क्यों यह काम किया।


0

मुझे पता है कि यह धागा पुराना है लेकिन फिर भी मैं साझा कर रहा हूं, मुझे आयातित असेंबली के सभी तीसरे भाग की निर्भरताएं स्थापित करनी हैं - क्योंकि आयातित असेंबली को नुगेट पैकेज के रूप में शामिल नहीं किया गया था, इसलिए इसकी निर्भरता गायब थी।

इस मदद की उम्मीद :)


0

मेरे मामले में, मेरे पास एक समाधान में दो परियोजनाएं थीं, मैंने संदर्भित परियोजना में एक उप-नामस्थान जोड़ा, लेकिन निर्माण करते समय, मैंने ध्यान नहीं दिया कि संदर्भित परियोजना का निर्माण विफल रहा और इसने अंतिम सफलतापूर्वक निर्मित संस्करण का उपयोग किया जो नहीं किया यह नया नाम स्थान है, इसलिए त्रुटि सही थी, कि इसे ढूंढा नहीं जा सकता, क्योंकि यह मौजूद नहीं था। समाधान स्पष्ट रूप से संदर्भित परियोजना में त्रुटियों को ठीक करने के लिए था।


0

मैं VS 2017 कम्युनिटी एडिशन पर काम कर रहा था और उसी मुद्दे पर CefSharp नगेट पैकेज था।

पैकेजों को सफलतापूर्वक डाउनलोड किया गया और पुनर्स्थापित किया गया, परियोजना को सफलतापूर्वक बनाया और चलाया जा सकता है - केवल मार्कअप ने संकेत दिया कि नामस्थानों को मान्यता नहीं दी गई थी।

मुझे केवल इतना करना था कि Referencesअनुभाग को खोलना और पीले विस्मयादिबोधक संकेतों में से एक पर क्लिक करना था ।

यहां छवि विवरण दर्ज करें

कुछ सेकंड के बाद मार्कअप त्रुटियां दूर हो गईं।

यहां छवि विवरण दर्ज करें


मुझे लगता है कि आप यह केवल तभी काम करेंगे जब गुण पैनल खोला जाता है (समस्याग्रस्त संदर्भ को राइट-क्लिक करें और गुण चुनें।) अब कोई भी बता सकता है कि यह क्यों काम करता है?
क्वर्टी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.