2008-10-10 11 views
25

मेरी परियोजना में मेरे पास एक कक्षा है जिसे कई अन्य वर्गों द्वारा विरासत में मिला है। हम इसे क्लासबेस कहते हैं।कक्षा विरासत पर ReSharper से गलत "अस्पष्ट संदर्भ" को कैसे हल करें?

public class ClassInheritFromBase : ClassBase 

जब ClassBase विरासत में मिला जा रहा है, ReSharper एक "अस्पष्ट संदर्भ" नया वर्ग कि ClassBase से विरासत में मिली IntelliSense नहीं है और चेतावनी है कि यह यह नहीं मिल रहा हो जाता है अंदर ClassBase पर चेतावनी, और कुछ भी फेंकता है।

प्रोजेक्ट संकलित करता है और ठीक चलाता है।

यदि मैं नामस्थान क्लासबेस बदलता हूं और फिर विरासत कक्षाओं को बदलता हूं, तो उन्हें यह ठीक लगता है और रीशेर्पर को कोई समस्या नहीं है, इंटेलिसेन्स काम करता है ... जब तक इसे संकलित नहीं किया जाता है। संकलन के बाद यह संदिग्ध संदर्भ चेतावनी और बाकी सब कुछ करने के लिए वापस चला जाता है।

क्या यह पहले देखा गया है और इसे कैसे ठीक किया जा सकता है? मैंने इस तरह के मुद्दे के लिए जेटब्रेन बग ट्रैकिंग में एक प्रविष्टि देखी, लेकिन उन्होंने इसे पुन: उत्पन्न करने में असमर्थ के रूप में बंद कर दिया।

+0

क्या आप नमूना समाधान बना सकते हैं जो आपके द्वारा वर्णित व्यवहार का प्रदर्शन करता है? –

उत्तर

2

यह रीशेपर 4.1 में एक बग है और बाद में रात के निर्माण में से एक में तय किया गया है।

http://www.jetbrains.net/confluence/display/ReSharper/ReSharper+4.0+Nightly+Builds पर अंतिम रात का निर्माण डाउनलोड करें।

+9

फिर भी रिशेर्पर 8.2 में हो रहा है, इसलिए शायद अन्य स्पष्टीकरणों के साथ और अधिक करना है ... –

+3

रीशेर्पर 8.2 में, स्थानीय को गलत पर कॉपी करें, फिर अपमानजनक संदर्भ के लिए सही पर सेट करें। मेरे मामले में यह System.Web.Http था। –

+0

अभी भी हो रहा है .. –

3

मैंने इस बग को रीशेपर 4.1 में देखा है। ऐसा तब होता है जब बेस क्लास App_Code निर्देशिका में होती है। मुझे नहीं पता कि इसे कैसे ठीक किया जाए; यह बहुत परेशान है, लेकिन कोड अभी भी संकलित है।

0

मुझे एक ही समस्या का सामना करना पड़ा। मेरे पास एक कस्टम बिल्ड प्रदाता (एक ओपन सोर्स लाइब्रेरी से मैं PageMethods नामक उपयोग कर रहा हूं) के कारण हुआ था और यह तथ्य कि मेरे सभी .aspx पृष्ठ बेसपेज क्लास से प्राप्त होते हैं जो App_Code फ़ोल्डर में रहता है।

मुझे अपने प्रोजेक्ट (4.1.933, 4.1.943 (नवीनतम) या 4.5) के साथ काम करने के लिए रीशेपर का कोई भी निर्माण नहीं मिला। नवीनतम रीशेर्पर बिल्ड में फिक्स "अस्पष्ट संदर्भ" समस्या को हल करता है, लेकिन कस्टम बिल्ड प्रदाता को तोड़ देता है।

रीशेर्पर के साथ काम करने के लिए बिल्ड प्रदाता और बेस क्लास दोनों को एकमात्र तरीका मिल सकता था बेस क्लास को एक अलग वर्ग पुस्तकालय में रखना था।

निम्नलिखित लॉग इन Jira कीड़े कि इस मुद्दे से संबंधित प्रतीत हैं:

0

मैं AppCode में सी # वर्गों के लिए संदर्भ के साथ एक ही समस्या का सामना कर रहा था फ़ोल्डर।

मैंने अपने रीशेपर को संस्करण 4.5 (संस्करण 4.1 से) में अपग्रेड करके इसे हल किया।

यह एक बहुत ही सरल उन्नयन था, मैं सिर्फ जेटब्रेन्स वेबसाइट (http://www.jetbrains.com/resharper/download/) से नवीनतम संस्करण प्राप्त और इसे चलाने के लिए किया था।

मुझे पिछले संस्करण को अनइंस्टॉल करने की आवश्यकता नहीं थी (v4.1)। मुझे अपनी मौजूदा लाइसेंस कुंजी दोबारा दर्ज नहीं करना पड़ेगा।

सभी संदर्भ अब सही ढंग से पहचाने जाते हैं और मैं अपेक्षित वर्गों में नौसेना कर सकता हूं।

1

रीशेपर -> विकल्प -> सामान्य: # साफ़ कैश # बटन पर क्लिक करें।

+1

कैश साफ़ करना एक बार में एक बार करने लायक लगता है लेकिन इस मामले में मदद नहीं करता है। –

14

उन लोगों के लिए जिनके पास अभी भी समस्या है, (मुझे अभी भी समय-समय पर मिलता है) यहां रेसर्पर में संदिग्ध संदर्भ चेतावनी से छुटकारा पाने के लिए मैंने किए गए कदम हैं।

  1. सबसे पहले मैं अपने सभी वर्ग पुस्तकालयों के पास गया और यह सुनिश्चित करें कि मेरे दूसरे वर्ग पुस्तकालयों के सभी संदर्भ कॉपी स्थानीय संपत्ति गलत पर सेट किया था बनाया है।
  2. प्रोजेक्ट में जहां मुझे वास्तव में संदिग्ध संदर्भ चेतावनी मिली, मैं अपने बिन कैटलॉग में गया और सभी पुस्तकालयों के लिए सभी .dll और .pdb फ़ाइलों को हटा दिया जिनके पास अपनी परियोजना थी।
  3. एक नए निर्माण के बाद, या मेरे मामले में वीएस में .dll फ़ाइलों पर "अद्यतन संदर्भ" में, Resharper की त्रुटियां चली गईं।

मैं विजुअल स्टूडियो 2008 में Resharper 5.1 का उपयोग कर रहा DLLs मैं उपयोग कर रहा हूँ है यही वजह है कि मैं करने के लिए "अद्यतन संदर्भ"

+3

इसकी 2013 और मुझे अभी भी कभी-कभी इस समस्या का सामना करना पड़ता है। उपरोक्त कदम हालांकि मेरे लिए इसे हल करने के लिए काम करते हैं। –

+0

2013 रिशेर्पर 6 और समस्या जारी है लेकिन मैं इसे समाधान पैनल में त्रुटियों में हल कर सकता हूं और .aspx पृष्ठ में किसी भी त्रुटि पर क्लिक कर सकता हूं। किसी भी तरह, जादुई रूप से, उस पर क्लिक करके, Resharper आंकड़े बताते हैं कि यह एक काल्पनिक समस्या है और "त्रुटियां" गायब हो जाती हैं – kevinsky

+8

मैंने झूठ बोला। समस्या एक प्रतिशोध के साथ वापस आ गया है ... 22 9 फाइलों में 400 9 त्रुटियां। यह मज़ाकीय है! वीएस2013, रिशेर्पर 8.0.2। –

1

था मेरे लिए करने के लिए केवल एक संदर्भ के साथ यह मेरे की बात थी नहीं कैश के लिए समाधान फ़ोल्डर का उपयोग कर। समाधान में टीईएमपी स्थान से इसे बदलने से मेरी समस्या हल हो गई।

0

मैं ReSharper 5.1 के साथ एक ही समस्या थी और विजुअल स्टूडियो 2010

1

मैं अपने समाधान और पुन: प्रारंभ की जड़ में पाया _ReSharper.SolutionName फ़ोल्डर को हटाया पुन: प्रारंभ करके इसे हल।

मैं मदद (-> मेनू विकल्प ->जनरल -> #Clear कैश # ReSharper) ReSharper 5.1 के साथ दृश्य   स्टूडियो   2010 का उपयोग कर रहा था ... कैश समाशोधन नहीं था।

5

मैं वीएस 2012 और रीशेपर 7 का उपयोग कर रहा हूं और कभी-कभी मुझे वही व्यवहार मिलता है। ये कदम है कि मेरे लिए काम किया हैं:

  1. स्वच्छ समाधान
  2. बंद दृश्य स्टूडियो
  3. अपने समाधान के रूट फ़ोल्डर पर जाएं और एक फ़ोल्डर _ReSharper [अपने समाधान का नाम] कहा जाता है खोजने के लिए और इसे हटा दें। ।
  4. विजुअल स्टूडियो पर वापस जाएं, अपना समाधान खोलें फ़ोल्डर को फिर से बनाया जाता है और इसके बाद कोई और "अस्पष्ट संदर्भ" त्रुटियां नहीं होती हैं।
+0

रिशेर्पर 8.1 .. अभी भी वह समस्या है, लेकिन इससे मदद मिली। – Vladimirs

+0

मेरे मामले में कैश उपयोगकर्ता सेटिंग्स फ़ोल्डर में था (स्थानीय, डोमेन के मामले में रोमिंग नहीं):% appdata% \ JetBrains \ ReSharper \ v7.1 \ SolutionCaches – ranieuwe

0

वी.एस. 2013 प्रीमियम & Resharper 8.1 का उपयोग करना, और एक ASP.Net परियोजना पर इस समस्या हो रही थी।

समाधान है कि मेरे लिए काम किया:

  1. एक साफ समाधान करते हैं।
  2. हमलावर परियोजना
  3. प्रत्येक संदर्भ कि समाधान में एक अन्य परियोजना को संदर्भित करता है पर के लिए ओपन संदर्भ, Copy Local = false निर्धारित किया है।
  4. एक पुनर्निर्माण समाधान का प्रयास करें। आपको अनसुलझा संदर्भ त्रुटियां मिलेंगी - यह सामान्य है।
  5. -Copy Local = true (जहां उचित)
1

वापस प्रत्येक संदर्भ सेट आप वास्तव में एक अस्पष्ट संदर्भ हो सकता है। प्रोजेक्ट में जहां संदिग्ध संदर्भ त्रुटि होती है, अपने प्रोजेक्ट संदर्भों में जांच करना सुनिश्चित करें। आपके पास दो बार एक ही संदर्भ हो सकता है लेकिन विभिन्न नामस्थानों के माध्यम से स्कॉप्ड हो सकता है। मेरे मामले में वहाँ दो थे, लेकिन अलग अलग रास्तों (उदाहरण) के साथ:

XXX.YYY.ZZZ.myassembly 
ZZZ.myassembly 

सुनिश्चित करें कि आप अपने संदर्भ में बात इस तरह की न करना पड़े।

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