2012-04-04 14 views
7

मेरे पास 5000+ संसाधन तारों वाला एक प्रोजेक्ट है। उनमें से लगभग सभी को उनके पहचानकर्ता में अवधि होती है।दबाएं "संसाधन का नाम मान्य पहचानकर्ता नहीं है"

हम पर स्विच कर रहे हैं स्वचालित रूप से दृढ़ता से टाइप कक्षाओं पैदा करने के लिए, और निश्चित रूप से, क्योंकि अवधियों की, हम कुछ हजार चेतावनी

संसाधन नाम 'blah' एक वैध पहचानकर्ता नहीं है देखते हैं।

मुझे पता है कि यह नहीं है, जनरेटर अंडरस्कोर में अवधि बदलता है, और सबकुछ ठीक है।

क्या मैं चेतावनी दबा सकता हूं? ऐसा लगता है कि #pragma दूर एक संबंधित संख्या नहीं है। किसी दिए गए .cs के लिए

#pragma warning disable 

साथ फाइल तुम भी चेतावनी पर क्लिक करें और फिर पर त्रुटि दिखाएँ सहायता राइट क्लिक करने में सक्षम होना चाहिए

+0

उत्तर "नहीं" है। और चूंकि हम चाबियाँ नहीं बदल सकते हैं (हमारा स्थानीयकरण इसे बंद कर देता है), मैं काफी अटक गया हूं। – Stu

उत्तर

6

मुझे लगता है कि मैं repro कर सकता हूं, हालांकि यह सवाल में क्रिस्टल नहीं है। प्रोजेक्ट + गुण, संसाधन और एक स्ट्रिंग संसाधन नाम टाइप करें जैसे "foo.bar" इस चेतावनी को ट्रिगर करता है।

हां, आप इस चेतावनी को दबा नहीं सकते हैं, यह आईडीई में संसाधन डिजाइनर द्वारा उत्पन्न होता है। जब यह गुण \ Resources.resx फ़ाइल से गुण \ Resources.Designer.cs फ़ाइल में कोड को स्वतः उत्पन्न करता है। .resx फ़ाइल को देखें और <data> तत्वों पर "नाम" विशेषता देखें। विशेषता मान में एक अवधि चेतावनी ट्रिगर करने जा रहा है।

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

+0

नहीं, हम मैन्युअल प्रतिबिंब से स्वतः उत्पन्न कक्षाओं में जा रहे हैं। बस नामकरण काम नहीं करेगा क्योंकि हमारे पास एक संपूर्ण i18n टूलचेन है जो इन पहचानकर्ताओं को चाबियाँ देता है। Sigh ... – Stu

+0

यह आपकी मदद करने में मेरी मदद नहीं करता है। संसाधन डिजाइनर द्वारा उत्पन्न चेतावनी अभी भी मेरी पसंदीदा व्याख्या है। –

+0

मुझे लगता है कि अधिक स्पष्ट होना चाहिए था। जब तक कोई कामकाज के साथ आता है, मैं आपको वैसे भी बक्षीस दूंगा। – Stu

3

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

आगे के शोध के बाद ऐसा लगता है कि कुछ चेतावनियों को दबाया नहीं जा सकता है। एमएसडीएन पर विवरण/अबर्न सी # कंपाइलर विकल्पों के बारे में विवरण देखें http://msdn.microsoft.com/en-us/library/7f28x9z3.aspx

उनमें से एक कंपाइलर चेतावनी (स्तर 1) CS2029 है जो आपको "मान्य पहचानकर्ता नहीं है" चेतावनी देता है। आप आगे की पुष्टि कर सकते हैं कि इसे संकलक चेतावनी (स्तर 1) CS2029 पर http://msdn.microsoft.com/en-us/library/878y1894.aspx

+0

.cs फ़ाइलें स्वचालित रूप से जेनरेट की जाती हैं। कोई चेतावनी संख्या नहीं है। – Stu

+0

यह 2029 नहीं है। कोई संख्या नहीं है।/डब्ल्यू 0 का कोई प्रभाव नहीं है। – Stu

2

एक वास्तव में भयानक काम के आसपास यहां डी-जोड़ी करने के लिए किया जाएगा संसाधन उपकरण से उत्पन्न कोड:

मान लें कि आपका संसाधन फ़ाइल का नाम Resources.resx

  1. खुला है चलो विजुअल स्टूडियो के अंदर प्रोजेक्ट में resource.resx पर डबल क्लिक करके संसाधन उपकरण।

  2. आपके द्वारा उपयोग किए जा रहे जेनरेट कोड स्कोप के लिए उपयुक्त अपने एक्सेस संशोधक को सेट करें।

  3. Windows Explorer में, निर्देशिका आवास अपने Resources.resx और Resources.Designer.cs कोड में जाते हैं। (मैन्युअल रूप से ब्राउज़ कर या अपनी परियोजना/नाम स्थान फ़ोल्डर पर राइट क्लिक करें और "Windows Explorer में फ़ोल्डर खोलें" का चयन)

  4. Resources.Designer.cs का नाम बदलेंको Resources.cs

  5. पर वापस जाएं दृश्य स्टूडियो में संसाधन उपकरण और पहुँच संशोधक सेट

  6. सहेजें, संसाधन उपकरण

  7. बंद "कोई कोड पीढ़ी" के लिए क्लिक करें "श्री समाधान सभी एक्सप्लोरर विंडो के शीर्ष पर "सभी फ़ाइलें" आइकन। Resources.cs फ़ाइल ghosted रूप में को उसी फ़ोल्डर में दिखाई देनी चाहिए Resources.resx

  8. अधिकार पर Resources.cs क्लिक करें और "परियोजना में शामिल करें"

चेतावनी अब गायब होनी चाहिए। बेशक, इस काम की असुविधा यह है कि जब भी आप संसाधन फ़ाइल को संशोधित करते हैं तो आपको इन सभी चरणों को करना होगा।

0

यह चेतावनी तब होती है जब संसाधन का नाम मान्य पहचानकर्ता नहीं है (उदाहरण के लिए, इसमें कोई स्थान या '-' है), और दृढ़ता से टाइप की गई संसाधन पीढ़ी फ़ाइल के लिए चालू है। यह एक त्रुटि के बजाय एक चेतावनी है क्योंकि दृढ़ता से टाइप किया गया संसाधन नाम एक वैध नाम में बदल दिया जाएगा (उदाहरण के लिए, "ए बी" को "a_b" में बदल दिया जाएगा), लेकिन संसाधन का नाम "बी" रहेगा।

इस त्रुटि

सही करने के लिए आपको सबसे पहले यदि संभव हो तो, एक वैध पहचानकर्ता के लिए संसाधन के नाम बदलना चाहिए। यदि यह वैध विकल्प नहीं है, तो इस .resx फ़ाइल के लिए दृढ़ता से टाइप की गई संसाधन कोड जनरेशन अक्षम करें। ऐसा करने के लिए, समाधान एक्सप्लोरर में .resx फ़ाइल का चयन करें और कस्टम टूल प्रॉपर्टी को साफ़ करें।

स्रोत: http://msdn.microsoft.com/en-us/library/ms228672(v=vs.80).aspx

+0

और यदि मुझे कोड (Designer.cs) की आवश्यकता है और संसाधन नाम का नाम बदल नहीं सकते .. ?? क्या कोई और कामकाज है ..? – shashwat

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