2010-08-11 47 views
5

मैं दृश्य स्टूडियो में एक अजीब व्यवहार का सामना करना पड़ा साथ समाप्त होता है 2010एंबेडेड संसाधन दृश्य स्टूडियो 2010 में लापता जब नाम "No.xxx"

एम्बेड किए गए संसाधनों (जो मेरी सी # परियोजना से जुड़ जाते हैं फ़ाइलों का उपयोग करते समय और जिसके लिए बिल्ड एक्शन संपत्ति Embedded Resource पर सेट है), फ़ाइलों को आउटपुट असेंबली में बाइनरी डेटा के रूप में शामिल किया गया है। लिस्टिंग संसाधनों स्पष्ट है:

class Program 
{ 
    static void Main(string[] args) 
    { 
     string[] names = typeof (Program).Assembly.GetManifestResourceNames(); 

     foreach (var name in names) 
     { 
      System.Console.Out.WriteLine (name); 
     } 
    } 
} 

हालांकि, एम्बेडेड संसाधन फ़ाइल नाम No.xxx (विस्तार अप्रासंगिक है) के साथ समाप्त होता है, फ़ाइल सूची में दिखाई नहीं देता। मैं किसी भी कारण का पता नहीं लगा सकता कि विजुअल स्टूडियो 2010 में ऐसी फाइल शामिल नहीं होगी। मुझसे क्या छूट गया?

नोट: यदि मैं किसी अन्य चीज़ के लिए समाधान एक्सप्लोरर में एम्बेडेड संसाधन फ़ाइल का नाम बदलता हूं, तो सब कुछ अपेक्षित काम करता है।

+0

अंत में मैंने इसे माइक्रोसॉफ्ट कनेक्ट को एक बग (17 अगस्त 2010) के रूप में पोस्ट किया। –

उत्तर

6

माइक्रोसॉफ्ट कनेक्ट टीम की ओर से दान अंत में इस व्यवहार के लिए एक valid explanation प्रदान की गई है:

नमस्ते, धन्यवाद रिपोर्ट के लिए, यह वास्तव में सामान्य रूप से काम कर रहा है। इसका कारण यह है कि किसी भी resx फाइल जिनके नाम पैटर्न .VALIDCULTURE.resx से मेल खाते हैं, उन्हें उस संस्कृति के लिए विशिष्ट माना जाता है। (इस तरह यह बेहतर या बदतर के लिए VS2002 के बाद से काम किया है) आपके मामले में "no" एक मान्य संस्कृति है (नॉर्वेजियन, मुझे लगता है) इसलिए निर्माण प्रक्रिया इसे उपग्रह असेंबली में बनाती है। जब मैंने कोशिश की तो मुझे यह मिला। "no" उपफोल्डर नोट करें। यदि आपके ऐप में आप अपनी वर्तमान संस्कृति को नॉर्वेजियन में बदल देते हैं, तो संसाधन लोड संसाधनों के इस सेट को लोड करेगा।

तो समस्या शब्द No के साथ ही लेना देना नहीं है, बल्कि तथ्य यह है कि यह एक वैध, दो-वर्ण, संस्कृति का नाम (मेरे मामले नार्वे में) है के साथ। मैंने चेक किया, और वास्तव में, bin\Debug में No नामक एक उप-फ़ोल्डर था, जिसमें Project.resources.dll नामक सैटेलाइट असेंबली शामिल थी।

.EN.xxx या .FR.xxx के साथ समाप्त होने के लिए संसाधन का नाम बदलना, वही व्यवहार प्रदर्शित करता है।

+0

वाह, आप StackOverflow पर कुछ भी पा सकते हैं! एक फ़ाइल के साथ एक ही मुद्दा था ii.tif एम्बेडेड नहीं हो रहा है। –

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