Visual Studio 2015 या 2017 IntelliSense त्रुटियों को दिखाता है, लेकिन समाधान संकलित करता है


122

वर्तमान में हम नए Visual Studio 2015 का मूल्यांकन कर रहे हैं और IntelliSense के साथ एक अजीब समस्या का सामना कर रहे हैं। जब मैंने नए स्टूडियो के साथ हमारे मुख्य समाधान को संकलित किया तो बिल्ड सफल होता है, लेकिन फिर भी 6 त्रुटियां दिखाई जाती हैं।

मुझे पता चला कि यह वास्तविक त्रुटि नहीं है, बल्कि केवल एक गहन त्रुटि है। कोड निश्चित रूप से सही है और सब कुछ सफलतापूर्वक संकलित है। कोड हालांकि लाल रंग में चिह्नित है और त्रुटियां त्रुटि सूची में दिखाई देती हैं।

सभी 6 त्रुटियों में एक ही मूल है। यह एक साधारण रचनाकार कॉल है। अजीब पर्याप्त है, लेकिन बिना किसी त्रुटि के सटीक एक ही निर्माता के कुछ घटनाएँ भी हैं।

त्रुटि संदेश:

Code: CS1729
Message: '<the class>' does not contain a constructor that takes that many arguments.
Project: <the project name>
File: <the path to the file>

नए स्टूडियो को बिना किसी विरासत सॉफ्टवेयर (वीएस 13) के बिना ताजे स्थापित विंडोज 7 पर स्थापित किया गया था।

मैं पहले ही कैश को साफ़ करने की कोशिश कर चुका हूं, सू फाइल को डिलीट कर दिया, बिन और ओबी डाइरेक्टरी को डिलीट कर दिया, सॉल्यूशन आदि को साफ कर दिया और फिर से बनाया।

क्या कोई मुझे उस व्यवहार की व्याख्या कर सकता है?


2
वास्तव में कोड को संकलित करने के लिए उपयोग किए जाने वाले कंपाइलर द्वारा उपयोग किए गए पार्सर समान नहीं है।
चिल

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

2
@chill VS2015 में यह वही पार्सर होना चाहिए, जो रोसलिन का हिस्सा है।
लास वी। कार्लसन

1
क्या आप एक छोटा प्रोजेक्ट बना सकते हैं जो समस्या को पुन: उत्पन्न करता है? यदि हां, तो क्या आप कोड पोस्ट कर सकते हैं?
लास वी। कार्लसन

क्या वर्ग आंशिक है, या इसका कोई भाग संकलन के समय उत्पन्न हुआ है?
पणगीतिस कानावोस

जवाबों:


58

माइग्रेटेड प्रोजेक्ट के साथ भी यह समस्या थी, इसलिए मैंने Microsoft.CSharp dll का संदर्भ लिया। कुछ परियोजनाओं में मुझे परियोजना में संदर्भ को फिर से हटाने और जोड़ने की आवश्यकता थी।


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

1
बिलकुल वैसी ही स्थिति जिसका वर्णन बिल ने किया। कुछ वर्गों को एक नई परियोजना में स्थानांतरित कर दिया गया। ऐसा लगता है जैसे नए प्रोजेक्ट संदर्भ को स्रोत नियंत्रण से आयात किए जाने पर Visual Studio ने इसे Intellisense cache अपडेट नहीं किया। संदर्भ को फिर से दर्ज करना मैन्युअल रूप से वीएस को ऐसा करने के लिए मजबूर करता है।
पीटर मेसज

2
समाधान संकलित करता है, लेकिन कुछ फ़ाइलों में बड़े पैमाने पर त्रुटियों को दिखाता है। कोई भी त्रुटि नहीं है जहाँ "रिलीज़" में दिखाया गया है, बस डिबग में। Microsoft.CSharp को हटा दिया गया, और त्रुटियां दूर हो गईं, धन्यवाद!
माइकल

@ मिचेल उस टिप के लिए धन्यवाद। मेरे साथ भी ठीक यही समस्या है। रिलीज़ में कोई त्रुटि नहीं, लेकिन डीबग में बहुत सारी त्रुटियां।
user2061057

यदि उल्लिखित वर्ग आपका अपना कोड है, तो आप केवल बाहर कर सकते हैं फिर उस फ़ाइल को शामिल करें जिसमें कक्षा है। IntelliSense को अपडेट करने के लिए इसे VS ट्रिगर करना चाहिए। # नवाफबग
डेविड एस।

198

मेरे पास हजारों अंतर्मुखी त्रुटियां थीं और 0 बिल्ड त्रुटियां थीं। .suoफ़ाइल को हटाने और वी.एस. अंतर्मुखी त्रुटियों को पुनः आरंभ करने के बाद चले गए हैं।

Suo फ़ाइल स्रोत में अपेक्षाकृत स्थित है: .vs\SolutionName\v14\.suo

टिप्पणी के अनुसार: खबरदार जो *.suoएक छिपी हुई फ़ाइल है।

संपादित करें: टिप्पणियों के अनुसार, VS2017 में एक ही मुद्दा है, इसलिए आप समान समाधान का उपयोग कर सकते हैं: हटाएं।vs\SolutionName\v15\.suo


7
बस एक नोट: *.suoकुछ मामलों में फाइलें छिपी हो सकती हैं। इसलिए आपको View Hidden filesविंडोज़ एक्सप्लोरर से विकल्प को सक्षम करने की आवश्यकता है ।
अताफुद

6
.Su को मारना मेरे लिए कोई प्रभाव नहीं था, लेकिन बिन को हटाने और डीआईआर को फिर से समाधान के पुनर्निर्माण के लिए किया।
Holger Böhnke

.Suo फ़ाइल को हटाने से मेरे लिए समस्या का समाधान नहीं हुआ (VS2015 में) मुझे जावास्क्रिप्ट में स्पष्ट रूप से लाल बदबू आ रही है जो कोड-पीछे से संपत्तियों को संदर्भित करता है: <%=Foo%>यह कहते हुए कि चर घोषित नहीं है, लेकिन रनटाइम के दौरान सब कुछ काम करता है।
टिम

मुझे 100% यकीन नहीं है, लेकिन यह भी अवैध मार्कअप त्रुटियों को ठीक कर सकता है जो मुझे XAML के साथ मिल रहा था
Geordie

खोजो। -name "* suo" -exec rm -rf {} \;
डेरेक ग्रीर

20

विज़ुअल स्टूडियो 2017 ASP.Net कोर प्रोजेक्ट में इसी तरह की समस्या है। निम्नलिखित चरणों ने मेरे लिए चाल चली

  1. स्वच्छ समाधान करें
  2. बंद वी.एस.
  3. .Suo फ़ाइल हटाएं और बिन / obj निर्देशिकाएं हटाएं
  4. रोपेन वी.एस.

1
यह काम करता है लेकिन समय-समय पर ऐसा थकाऊ काम करता है। रिलीज मोड में निर्माण करते समय मुझे हमेशा यह समस्या होती है। अजीब वी.एस. खिचड़ी भाषा इसे अपने आप से बाहर।
नवफाल

12

दूसरों के समान समस्या, लेकिन अलग-अलग संकल्प। मामले में पोस्टिंग मैं किसी और की मदद कर सकता हूं।

रनिंग विजुअल स्टूडियो 2017 15.5.2। मैं Git का उपयोग करता हूं और अक्सर शाखाओं को स्विच करता हूं। कई हफ़्ते पहले, मैंने संपादकों को मुझे त्रुटियों को दिखाना शुरू कर दिया था (सभी प्रकारों से संबंधित यह नहीं मिल सकता था, हालांकि संदर्भ वैध थे)। संकलन ने बहुत अच्छा काम किया। मैंने वीएस 2017 15.6 पूर्वावलोकन (जनवरी 6, 2018) में इसी मुद्दे की पुष्टि की। मैं कैश, एसयूओ फाइलें, या बिन / ओबीजी फ़ोल्डर्स और कोई प्रभाव नहीं हटाने की कोशिश करूंगा। पहले तो यह काम करता दिखाई देगा। विजुअल स्टूडियो को फिर से खोलें और सब कुछ अच्छा लगेगा। "पुनर्निर्माण समाधान" का उपयोग करें और IntelliSense त्रुटियां वापस आएंगी। मैं भी Visual Studio की स्थापना रद्द / पुनः स्थापित करने की कोशिश की।

मैं दो मशीनों पर एक ही मुद्दा था, दोनों एक ही दृश्य स्टूडियो के संस्करण के साथ।

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

मैंने फिर गिट शाखाओं को स्विच किया और सभी त्रुटियां वापस आ गईं। सौभाग्य से मैंने छोटी परियोजना को उतारने / पुनः लोड करने के उपरोक्त चरणों को दोहराया और त्रुटियां दूर हो गईं।

जब भी मैं Git शाखाओं को स्विच करता हूं, तब तक त्रुटियाँ वापस आ जाती हैं, जब तक मैं उस प्रक्रिया को नहीं दोहराता। छोटे प्रोजेक्ट के लिए Git शाखाओं के बीच शून्य परिवर्तन हैं जिन्हें मैं अनलोड / पुनः लोड करता हूं। अस्पष्ट है कि क्यों अनुक्रम मेरे मुद्दे को ठीक कर रहा है।


इसके आधार पर, मैंने तीन "टेस्ट" या "आर्किटेक्चर" संबंधित प्रोजेक्ट्स को अनलोड किया, फिर इन्टेलिसेंस एरर-भरे प्रोजेक्ट (WPF) को अनलोड और रीलोड किया। 0 की 0 त्रुटियाँ :) +1 असतत विवरण के लिए जिसने मुझे HgCoder के समान कुछ करने की कोशिश करने के लिए प्रेरित किया!
Steven_BDawg

वीएस 2017 का उपयोग 15.9.9। गिट का उपयोग करना। R # का उपयोग करना। मैं नियमित रूप से शाखाओं को भी स्विच करता हूं। मेरी त्रुटियां वास्तव में सभी IntelliSense हैं। मुझे लगता है कि प्रोजेक्ट को उतारने का कारण "प्रोजेक्ट" कॉलम (त्रुटि सूची टैब में) <अज्ञात> पर जाना है। तो, यह इसे थोड़ा लात मारता दिखाई देता है। लगता है उतराई की परियोजनाओं ने मेरे लिए भी काम किया है। एक स्वच्छ समाधान + पुनर्निर्माण समाधान अंत में 0 त्रुटियां उत्पन्न हुईं।
dthal

7

इसके अलावा यह समस्या थी (शीर्षक, विशिष्ट त्रुटि संदेश नहीं), साथ ही साथ संपादक में मुख्य रूप से लाइनें भी। पहली स्क्वैगली लाइन पहले #includeस्टेटमेंट के तहत है , जिसमें एक प्री-कम्पोस्ड हेडर है। Intellisense precompiled हेडर को शामिल करने में विफल रहता है, लेकिन इसे त्रुटि के रूप में सूचीबद्ध नहीं करता है; इसके बजाय यह फ़ाइल के नीचे त्रुटियों को सूचीबद्ध करता है, कोड पर (बहुत ही सही) पूर्वनिर्धारित हेडर में घोषणाओं पर निर्भर करता है।

Intellisense ने मेरे वातावरण में पहले से तैयार हेडर को नहीं पाया है, जिसका नाम हैडर एक वास्तविक फ़ाइल नहीं है। यह मेरे द्वारा उपयोग किए जाने वाले किसी अन्य वीसी या जीसीसी संस्करण में नहीं है, और न ही 2015 के कंपाइलर में, जब तक कि पूर्व-निर्मित हेडर सेटिंग्स सही तरीके से कॉन्फ़िगर नहीं हो जाती हैं। जाहिर है Intellisense के लिए कोई और नहीं। मुझे पूरी तरह से यकीन नहीं है कि यह 2013 में अलग था, शायद मैंने कभी ध्यान नहीं दिया।

इस समस्या की संभावना नहीं है कि यह समस्या यहां बताई गई है, समाधान सरल है: #includeनिर्देश में निर्दिष्ट के रूप में पूर्वनिर्धारित हेडर के दिखावा-नाम के साथ एक छोटी सी फ़ाइल बनाएं , और उस फ़ाइल में प्री-कैप्ड हेडर का वास्तविक नाम शामिल करें।

अगर आपको आश्चर्य होता है ... '#include' स्टेटमेंट में प्रिकॉम्पल्ड हेडर नाम और प्री-कैप्ड हेडर के वास्तविक फ़ाइल नाम के बीच यह अंतर क्यों है? सटीक रूप से क्योंकि यह गारंटी देता है कि पूर्वगामी हेडर सेटिंग्स सही ढंग से कॉन्फ़िगर की गई हैं। जहाँ भी एक precompiled हैडर "#included" है, वहाँ कोई फ़ाइल नहीं है जिसे शामिल किया जा सके। वास्तविक हेडर का या तो वास्तव में पहले से तैयार (बाइनरी) संस्करण पढ़ा जाता है, या संकलन विफल हो जाता है। जाहिर है, एक नुकसान यह है कि यह कोड पढ़ने वाले लोगों को भ्रमित करता है, न कि केवल अंतर्मुखी।


2

Visual Studio 2017 मैंने स्थान से ".suo" फ़ाइल को हटा दिया है .vs \ SolutionName \ v15.suo और फिर Visual Studio को पुनरारंभ करें। इसने मेरे लिए काम किया।


2

आज मुझे MSVC ++ 2015 के साथ भी ऐसी ही समस्या थी। मैंने लगभग हार मान ली और बिना आईडीई संकेत के जाने का फैसला किया, लेकिन अचानक मैंने देखा है कि परियोजना के stdafx.h के साथ मुझे कोई मानक लाइब्रेरी हेडर नहीं होने की समस्या थी। मैंने अनुमान लगाया है कि stdafx.h में परियोजना में उपयोग किए जाने वाले सभी मानक शीर्षकों को शामिल करने से संकलन गति को बढ़ावा मिल सकता है, लेकिन साथ ही साथ इन्टेलिसेन्स त्रुटियों को भी ठीक कर सकता है।


1

मैं stdfax.hअतिरिक्त शामिल निर्देशिकाएँ में कई था । सुनिश्चित करें कि stdafx.hआपका इरादा आपके पथ में पहले है।


1

मेरे पास विभिन्न विज़ुअल स्टूडियो संस्करणों के साथ एक समान मुद्दा था।

.So या .vs फ़ोल्डर को हटाने से मेरे लिए मदद नहीं मिली।

मेरे लिए समाधान यह था, कि मेरे पास एक्सटेंशन स्टॉपऑनस्टर्फ़बिल्डरिलर सक्रिय था। बिल्ड मेनू में "स्टॉप बिल्ड ऑन फर्स्ट एरर" को बंद करने के बाद, और सॉल्यूशन पूरी तरह से निर्मित होने के बाद, इन्टेलिसिस द्वारा दिखाई गई त्रुटियां दूर हो गईं।


1

मैं एक वेबसाइट प्रकाशित करते समय केवल इंटेलीजेंस त्रुटियों को देख रहा था। (एएसपी / सी # साइट, वीएस 2017)। उन्होंने प्रकाशन को तोड़ दिया। साइट स्थानीय रूप से ठीक चली।

पूर्व-संकलित करने के लिए सेटिंग को अनचेक करके त्रुटियों को साफ़ किया, और इसे ठीक प्रकाशित किया। प्रकाशन -> सेटिंग -> फ़ाइल प्रकाशन विकल्प -> प्रकाशन के दौरान पूर्वसर्ग


1

विजुअल स्टूडियो 2019 में प्रॉब्लम गिट के साथ बदलती शाखाओं के साथ है जब प्रोजेक्ट में नूगेट पैकेज स्थापित हैं। मैंने इसे हल करने के लिए क्या किया:

  1. स्वच्छ समाधान
  2. Visual Studio को बंद करें
  3. संकुल फ़ोल्डर हटाएँ
  4. विजुअल स्टूडियो खोलें
  5. पैकेज मैनेजर के पास जाएं
  6. सभी पैकेजों को पुनर्स्थापित करें
  7. पुन: संयोजित
  8. यदि रोसलिन गायब है, तो विज़ुअल स्टूडियो को बंद करें और खोलें, फिर से खोलें।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.