MissingManifestResourceException का क्या अर्थ है और इसे कैसे ठीक किया जाए?


151

स्थिति:

  • मेरे पास एक क्लास लाइब्रेरी है, जिसे कहा जाता है RT.Servers, जिसमें कुछ संसाधन हैं (प्रकार के byte[], लेकिन मुझे नहीं लगता कि यह महत्वपूर्ण है)
  • समान श्रेणी की लाइब्रेरी में एक विधि होती है जो उन संसाधनों में से एक को वापस करती है
  • मेरा एक सरल कार्यक्रम है (उस पुस्तकालय के संदर्भ में) जो केवल उस एकल विधि को कहता है

मुझे MissingManifestResourceExceptionनिम्नलिखित संदेश मिला है:

निर्दिष्ट संस्कृति या तटस्थ संस्कृति के लिए उपयुक्त कोई संसाधन नहीं मिल सका। सुनिश्चित करें कि "Serv..Resource.resource" संकलन समय पर सही ढंग से असेंबली या "RT.Servers" में लिंक किया गया था, या यह आवश्यक है कि सभी सैटेलाइट असेंबलियाँ लोड करने योग्य हैं और पूरी तरह से हस्ताक्षरित हैं।

मैंने कभी संस्कृतियों के साथ, या असेंबली साइनिंग के साथ नहीं खेला है, इसलिए मुझे नहीं पता कि यहां क्या हो रहा है। इसके अलावा, यह एक अन्य परियोजना में काम करता है जो उसी पुस्तकालय का उपयोग करता है। कोई विचार?


2
यह .NET में सबसे बेकार अपवादों में से एक है। यह कम से कम 3 परिदृश्यों में ट्रिगर करता है जो सामान्य रूप से कुछ भी साझा नहीं करते हैं।
rr-

1
क्षमा करें, लेकिन यह एक Microsoft तरीका है: सभी को निकालें, और फिर पुन: जोड़ें । संसाधनों के लिए काम करता है, NUGET, संदर्भ और कनेक्शन तार। बहुत सारे उपकरण हैं, लेकिन आप गैर-सामान्य मामलों में कच्ची फ़ाइलों के लिए समय
बिताएंगे

जवाबों:


238

इस समस्या को ठीक करने के लिए मुझे बस इतना करना चाहिए Resources.resxकि समाधान एक्सप्लोरर में फ़ाइल को राइट-क्लिक करें और कस्टम उपकरण चलाएँ पर क्लिक करें । यह ऑटो जनरेटेड Resources.Designer.csफ़ाइल को फिर से जेनरेट करता है।

यदि .resx फ़ाइल को मैन्युअल रूप से प्रोजेक्ट में जोड़ा गया था, तो फ़ाइल का कस्टम टूल गुण "ResXFileCodeGenerator" पर सेट होना चाहिए।

समस्या नाम स्थान के बेमेल के कारण है, जो कि यदि आप प्रोजेक्ट सेटिंग्स में असेंबली के "डिफ़ॉल्ट नाम स्थान" को बदलते हैं तो होता है। (मैंने इसे (पहले) "Servers"से (अब) बदल दिया है "RT.Servers"।)

ऑटो-जेनरेट किए गए कोड में Resources.Designer.cs, निम्नलिखित कोड है:

internal static global::System.Resources.ResourceManager ResourceManager {
    get {
        if (object.ReferenceEquals(resourceMan, null)) {
            global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Servers.Resources", typeof(Resources).Assembly);
            resourceMan = temp;
        }
        return resourceMan;
    }
}

शाब्दिक स्ट्रिंग "Servers.Resources"को बदलना पड़ा "RT.Servers.Resources"। मैंने इसे मैन्युअल रूप से किया था, लेकिन कस्टम टूल को चलाने पर इसे समान रूप से अच्छी तरह से किया जाएगा।


9
इसने मुझे बहुत समय बचाया!
एरिक

1
+1! वीएस 2010 में ऊपर दिखाए गए संसाधन प्रबंधक शाब्दिक स्ट्रिंग को स्वचालित रूप से प्रोजेक्ट गुण (एप्लिकेशन टैब) में डिफ़ॉल्ट नामस्थान के मान से अद्यतन किया जाता है, कम से कम WinForms के लिए।
ट्रूविल

2
यदि आपके पास रिसोर्स.रेक्स फ़ाइल नहीं है तो क्या होगा?
ashes999

@ ashes999: क्या आपने गुण फ़ोल्डर में देखा है? जहां यह आमतौर पर सी # परियोजनाओं के लिए कम से कम है।
RenniePet

मैंने एक ही समस्या चलाई है। .resx फ़ाइल को मैन्युअल रूप से प्रोजेक्ट में जोड़ा गया था, मैंने जो फ़ाइल "ResXFileCodeGenerator" में कस्टम टूल प्रॉपर्टी से जोड़ा है। तब रेक्स फाइल पहले और बाद में डिज़ाइनर ।vb फ़ाइल बाद में हो जाती है। पूरी तरह से डेसिंगर फ़ाइल पहले और बाद में .resx फ़ाइल। मैं इसे कैसे बना सकता हूं ....
कविता १12

37

मैं आज ही इस समस्या को लेकर आया था, और मुझे यह Microsoft मदद और समर्थन पृष्ठ मिला जो वास्तव में समस्या के आसपास काम करता था।

मेरे पास अपनी फ़ाइल के शीर्ष पर, वैश्विक नामस्थान में एक प्रतिनिधि था, और अचानक मुझे MissingManifestResourceExceptionइस कार्यक्रम को चलाने पर एक लाइन मिल रही थी:

this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));

फिर मैंने प्रतिनिधियों को नाम स्थान में स्थानांतरित कर दिया, वही त्रुटि मिली। अंत में मैंने प्रतिनिधियों को उस फ़ाइल में एकमात्र वर्ग में रखा, और त्रुटि दूर हो गई, लेकिन मैं उस वर्ग या नामस्थान में प्रतिनिधियों को नहीं चाहता था।

फिर मैं उस लिंक के ऊपर आया, जिसमें कहा गया था

इस समस्या को हल करने के लिए, सभी अन्य वर्ग परिभाषाएँ स्थानांतरित करें ताकि वे प्रपत्र की वर्ग परिभाषा के बाद दिखाई दें।

मैंने स्थानीय नामस्थान के बाहर, उस फ़ाइल के नीचे प्रतिनिधियों (जिसे मैं "वर्ग परिभाषा" नहीं मानूंगा) रखा, और कार्यक्रम MissingManifestResourceExceptionअब नहीं मिला । क्या एक चिड़चिड़ापन त्रुटि। लेकिन, यह ऑटो-जनरेट कोड को संशोधित करने की तुलना में अधिक मजबूत समाधान जैसा लगता है :)


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

7
फॉर्म 1.cs फ़ाइल में फॉर्म की कक्षा के ऊपर एक वर्ग जोड़ने के कारण मुझे त्रुटि मिली (जैसा कि आपके द्वारा दिए गए लिंक के "रिज़ॉल्यूशन" अनुभाग में चर्चा की गई है)। धन्यवाद!
मैट स्मिथ

एक ही समस्या है; कुछ और काम नहीं कर रहा था, इसलिए मैंने केवल लाइन को हटा दिया: यह। Icon = ((System.Drawing.Icon) (Resources.GetObject ("$ this.Icon")); क्योंकि मैं उस विशेष रूप में आइकन के बारे में परवाह नहीं करता हूं :)
गैरी हुकाबोन

यही जवाब है। धन्यवाद।
सर्टन पेकेल

अगर किसी ने भ्रमित किया तो मेरे पास Form1.cs के "फ़ॉर्म 1" बिट से पहले "StringExtensions" नामक एक वर्ग था, मैंने इसे फॉर्म 1 में नीचे form1.cs से नीचे स्थानांतरित किया और इसने काम किया
Ma Dude

31

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

यदि आप डिजाइनर वर्ग से पहले एक वर्ग जोड़ते हैं तो आपको MissingManifestResourceExceptionरनटाइम (कोई संकलन समय त्रुटि या चेतावनी) पर अपवाद मिलेगा क्योंकि

विजुअल स्टूडियो के लिए आवश्यक है कि डिजाइनर फाइल में प्रथम श्रेणी का उपयोग करें।

अधिक (थोड़ी) जानकारी के लिए इस पोस्ट को देखें ।


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

16

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

हालाँकि यह मुझे सही दिशा में ले जाता है, क्योंकि मैंने .resx फ़ाइल के गुणों को समाप्त कर दिया है । यहाँ मैंने एक और .resx फ़ाइल में अंतर देखा , जिससे कोई समस्या नहीं हुई।

मेरे मामले में मुझे संपत्ति "बिल्ड एक्शन" को "संसाधन" से "एंबेडेड रिसोर्स" में बदलना पड़ा।

कारण के लिए मेरा सबसे अच्छा अनुमान है, कि मेरे पास एक पुस्तकालय में -resx था जिसे दूसरे अनुप्रयोग से उपयोग किया गया था। मेरे आवेदन में अपनी .resx फ़ाइल नहीं थी , इसलिए उसे लाइब्रेरी से एक का उपयोग करना पड़ा - जो कि केवल तब उपलब्ध होता है जब वह लाइब्रेरी में एम्बेडेड होता है न कि "अकेले खड़े"।


2
+1 धन्यवाद, मैंने अपने संसाधन फ़ाइलों को डबल-चेक किया जो एक अलग लाइब्रेरी में भी हैं जो अन्य अनुप्रयोगों द्वारा संदर्भित है। मेरे पास कंटेंट के लिए बिल्ड एक्शन था, और इसे एंबेडेड रिसोर्स में बदलने के बाद, सभी ने अच्छी तरह से काम किया। मूर्खतापूर्ण निरीक्षण
शान प्लेउर्ड

1
धन्यवाद! इसने मेरे लिए काम किया जहां मेरे पास कुछ पाठ फाइलें थीं जिनमें या तो परीक्षण के लिए सामग्री थी, या कुछ व्यावसायिक मानचित्रण नियम। कंटेंट से एंबेडेड रिसोर्स में बदलाव ने समस्या को ठीक कर दिया।
एस। बग्गी

12

जब मैं इसी तरह के एक मुद्दे पर चला गया, बनाम 2012 में, यह पता चला कि रेक्स फ़ाइल की "कस्टम टूल नेमस्पेस" संपत्ति गलत थी (मेरे मामले में, वास्तव में, यह परेशान था, इसलिए उत्पन्न कोड रनटाइम पर इस अपवाद को कम कर देता है) । Resx फ़ाइल के लिए गुणों का मेरा अंतिम सेट कुछ इस तरह था:

  • बिल्ड एक्शन: एंबेडेड रिसोर्स
  • आउटपुट डायरेक्टरी में कॉपी करें: कॉपी न करें
  • कस्टम उपकरण: ResXFileCodeGenerator
  • कस्टम टूल नामस्थान: My.Project.S.Proper.Namespace

3

इसे भी देखें: MSBuild ((.Mresource के प्रकट में पथ) के साथ निर्माण के बाद परीक्षण चलाने पर MissingManifestResourceException

मैं यहाँ उत्तर पूर्णता के लिए दोहराता हूँ:

यह प्रोजेक्ट फ़ाइल में LogicalName जोड़कर इसे ठीक करता है:

<LogicalName>$(RootNamespace).Properties.Resources.resources</LogicalName> 

यानी प्रोजेक्ट फ़ाइल में एम्बेडेड संसाधन प्रविष्टि इस तरह दिखती है:

<ItemGroup>
  <EmbeddedResource Include="Properties\Resources.resx">
    <Generator>ResXFileCodeGenerator</Generator>
    <LastGenOutput>Resources.Designer.cs</LastGenOutput>
    <LogicalName>$(RootNamespace).Properties.Resources.resources</LogicalName> 
  </EmbeddedResource>
</ItemGroup>

यह विस्तृत है: http://blogs.msdn.com/b/msbuild/archive/2007/10/19/manifest-resource-names-changed-for-resources-files.aspx

ध्यान दें कि हम एक .resx फ़ाइल का उपयोग कर रहे हैं, लेकिन बग अभी भी प्रतीत होता है।

अद्यतन: संसाधनों के साथ समस्या (incl। XAML) आउटपुट पथों और आगे या पीछे की ओर स्लैश के उपयोग से संबंधित प्रतीत होती है: प्रोजेक्ट आउटपुट निर्देशिकाओं को संशोधित करने का कारण क्यों होता है: IOException को "संसाधन 'app.xaml' नहीं किया जा सकता है । "


लगभग आठ घंटे इस मुद्दे पर डिबगिंग के बाद, और शाब्दिक रूप से हर गीथूब, एसओ और Google उत्तर के माध्यम से फँसते हुए, यह वह उत्तर है जिसने मेरी समस्या को हल किया ... fwiw, मेरा मुद्दा .Net 3.5 से 4.7.2 पर माइग्रेट होने के बाद होने लगा।
नेवले

3

मैं इस समस्या के एक अलग कारण के रूप में भाग गया, जो फ़ाइलों को रीसेट करने के लिए असंबंधित था। मेरे पास एक क्लास लाइब्रेरी थी, जहां असेंबलीइन्फो.केक्स निम्नलिखित थे:

[assembly: ThemeInfo(
ResourceDictionaryLocation.SourceAssembly,
ResourceDictionaryLocation.SourceAssembly)]

विधानसभा में कोई WPF कोड, थीम या संसाधन शब्दकोश नहीं थे। मैंने ThemeInfo विशेषता को हटाकर अपवाद से छुटकारा पा लिया।

मुझे वास्तविक अपवाद नहीं मिला, केवल

प्रकार का पहला मौका अपवाद 'System.Resources.MissingManifestResourceException'।

अपवाद विवरण देखने पर, सिस्टम MyAssembly.g.resources का अनुरोध कर रहा था

आशा है कि यह किसी और की मदद हो सकती है।


2
इसके लिए शुक्रिया! वास्तव में मैं तय की जरूरत है! होता है जब आप गलती से एक नियंत्रण पुस्तकालय के रूप में एक ViewModel परियोजना बनाते हैं।
एंड्रयू हैनॉन

धन्यवाद। इसने मेरे लिए इसे ठीक कर दिया।
जमलेक

2

यकीन नहीं होता कि इससे लोगों को मदद मिलेगी लेकिन यह मेरे लिए काम कर गया:

इसलिए मेरे पास यह मुद्दा था कि मुझे निम्नलिखित संदेश मिल रहा था:

निर्दिष्ट संस्कृति या तटस्थ संस्कृति के लिए उपयुक्त कोई संसाधन नहीं मिल सका। सुनिश्चित करें कि "My.Resource.Resources.resources" को सही समय पर असेंबली या "X" असेंबली में लिंक किया गया था, या यह आवश्यक है कि सभी सैटेलाइट असेंबलियाँ लोड करने योग्य हैं और पूरी तरह से हस्ताक्षरित हैं "

मैं उन संसाधनों को प्राप्त करने की कोशिश कर रहा था जो मेरी परियोजना में किसी अन्य श्रेणी के पुस्तकालय से एम्बेडेड थे।

मैंने समस्या को ठीक करने के लिए टैब प्रोजेक्ट में एक्सेस मॉडिफायर सेट किया था-> गुण-> "आंतरिक" से संसाधन (केवल एक ही कक्षा के पुस्तकालय के लिए सुलभ) "सार्वजनिक" (दूसरे वर्ग के पुस्तकालय से सुलभ)

फिर भागो और आवाज करो, मेरे लिए कोई और त्रुटि नहीं ...


2

BlaM द्वारा दिए गए समाधान ने मेरे लिए भी काम किया।

मैं एक वीएस 2013 उपयोगकर्ता हूं। कई सुधारों से गुजरने के बाद भी कोई किस्मत नहीं, मैंने यह कोशिश की:

  1. एकाधिक-फ़ाइलों के मामले में संसाधन फ़ाइल को एक-एक करके राइट-क्लिक करें।
  2. सुनिश्चित करें कि, संपत्ति "बिल्ड एक्शन" "एंबेडेड रिसोर्स" पर सेट है।

बस! :)


इसकी पुष्टि करते हैं। मेरे पास एक काम करने वाली परियोजना है, लेकिन संसाधन असेंबलियों को अलग-अलग बनाए रखने के लिए आवश्यक है, इसलिए "एंबेडेड रिसोर्स" से बस "संसाधन" पर फ़्लिप करने की कोशिश की गई और समाप्त हो रही है MissingResourceManifestException।
मोस्का पं।

2

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

Public Class MyUserControlObject

end Class

Public Class MyUserCOntrol

end Class

समाधान MyUserControlObjectइस तरह से Usercontrol वर्ग के अंत में जाना था

Public Class MyUserCOntrol

end Class

Public Class MyUserControlObject

end Class

आशा है कि ये आपकी मदद करेगा


एक भद्दा त्रुटि विवरण के बारे में बात करें ... मैंने एक सहायक वर्ग को मुख्य प्रपत्र के सीएस फ़ाइल में जोड़ा। कभी भी मैंने अनुमान नहीं लगाया होगा कि त्रुटि संदेश इससे वापस जुड़ जाएगा। धन्यवाद!
एडम लुईस

1

VS2005 से VS2010 तक अपने प्रोजेक्ट को पोर्ट करने के बाद मुझे MissingManifestResourceException त्रुटि मिल रही थी। मेरे पास फ़ाइल में कोई अन्य वर्ग परिभाषित नहीं है जिसमें मेरा फ़ॉर्म वर्ग है। और मेरे पास मेरा Resx Resource File Name सही तरीके से सेट था। काम नहीं किया।

इसलिए मैंने रेक्स फ़ाइलों को हटा दिया और उन्हें पुनर्जीवित किया। अभी सब अच्छा है।


1

हाल ही में एक ही समस्या में भाग गया, थोड़ा संघर्ष किया, इस विषय को पाया लेकिन मेरे लिए कोई जवाब सही नहीं थे।

मेरी समस्या यह है कि जब मैं (यह एक मुख्य विंडो नहीं है) मेरी WPF परियोजना से मुख्य विंडो हटा दिया, मैं दूर करने के लिए भूल गया था StartupUriसे App.xaml। मुझे लगता है कि यह अपवाद है अगर आप में एक गलती की है हो सकता है StartupUriअगर किसी को भी इस के साथ संघर्ष कर रहा है ताकि मामले में, - अपने जाँच StartupUriमें App.xaml


1

हाल ही में इस मुद्दे पर ठोकर खाई, मेरे मामले में मैंने कुछ चीजें कीं:

  1. सुनिश्चित करें कि नामस्थान रेसक्स फ़ाइल के डिज़ाइनर .cs फ़ाइल में सुसंगत हैं

  2. सुनिश्चित करें कि असेंबली का डिफ़ॉल्ट नाम स्थान (प्रोजेक्ट पर राइट क्लिक करें और गुण चुनें) संसाधन फ़ाइल में नामस्थान पर समान है।

एक बार जब मैंने चरण 2 किया, तो अपवाद चला गया।


1

मुझे यह समस्या तब हुई जब मैंने फॉर्म से निकलने वाली क्लास से ठीक पहले फाइल में एक और क्लास जोड़ी। समस्या को ठीक करने के बाद इसे जोड़ना।


1

जब आप एक डिज़ाइनर बनाए गए फ़ॉर्म की क्लास के स्रोत कोड में एक नई कक्षा डालते हैं तो भी वही त्रुटि हो सकती है।

इस नए वर्ग को हटाया जा सकता है, और एक अलग सीएस फ़ाइल में रखा जा सकता है।

(कम से कम मेरे मामले में यही समस्या थी ...)


0

क्योंकि मैं अपने वेब एप्लिकेशन (VS2012 प्रकाशित सुविधा का उपयोग करके) को पूर्व-संकलन कर रहा हूं। मुझे ऊपर त्रुटि हो रही थी। मैंने सभी सुझावों की कोशिश की, लेकिन अजीब तरह से Build बिल्ड एक्शन ’को did कंटेंट’ में बदलने की चाल चली!


0

मेरे मामले में, मेरे पास संसाधनों के साथ एक वेब एपी है और मैं उसी से एक नगेट पैकेज बनाता हूं। जब मैं अन्य परियोजनाओं में इस नगेट का उपयोग करता हूं, तो मुझे एहसास होता है कि जब मैं संसाधनों के साथ एक एपीआई का अनुरोध करता हूं, तो मुझे MissingManifestResourceExceptionथोड़ी सी खोज के बाद मिल रहा है, मुझे लगता है कि नगेट पैकर संसाधनों को स्वचालित रूप से पैक नहीं कर रहा है। यदि आप संसाधन फ़ाइलों का उपयोग करना चाहते हैं, तो आपको मैन्युअल रूप से करना होगा। इसलिए आपको अपनी .nuspec फ़ाइल में नीचे की पंक्तियों को जोड़ना होगा: ( https://github.com/NuGet/Home/issues/1482 पर जाएं )

<package> 
    <metadata>
    </metadata>
    <files>
        <file src="bin\Debug\en\MyAssembly.resource.dll" target="lib\net40\en\MyAssembly.resource.dll" />
        <file src="bin\Debug\es\MyAssembly.resource.dll" target="lib\net40\es\MyAssembly.resource.dll" />
    </files>
</package>

लेकिन, फ़ाइलों को जोड़ने से पहले, आपको यह सुनिश्चित करने की आवश्यकता है कि आप किस संस्करण का उपयोग कर रहे हैं।


0

मेरे पास एक नई बनाई गई F # परियोजना थी। परियोजना गुणों में "मानक संसाधन नामों का उपयोग करें" को अनचेक करना था -> अनुप्रयोग -> संसाधन / निर्दिष्ट करें कि अनुप्रयोग संसाधनों का प्रबंधन कैसे किया जाएगा। अगर आपको चेकबॉक्स दिखाई नहीं देता है तो अपने विजुअल स्टूडियो को अपडेट करें! मेरे पास 15.6.7 स्थापित हैं। 15.3.2 में यह चेकबॉक्स नहीं है।


0

सिर्फ उल्लेख करने के लिए। यदि आप एक निरंतर या शाब्दिक का उपयोग करते हैं, तो सुनिश्चित करें कि यह प्रपत्र के संसाधन को संदर्भित करता है ProjectName.Resources, और cpntain नहीं करता हैResources.resx

यह आपको एक या दो घंटे बचा सकता है।


0

मैं वैश्विक नाम स्थान (मैन्युअल रूप से नहीं, बल्कि VS2017 का नाम बदलें टूल) का नाम बदलने के बाद WinForms पर आधारित प्रबंधित C ++ प्रोजेक्ट के साथ इस मुद्दे का सामना कर चुका हूं।

समाधान सरल है, लेकिन कहीं और उल्लेख नहीं किया गया है।

आपको RootNamespaceC ++ नाम स्थान से मेल करने के लिए vcxproj-file में प्रविष्टि को बदलना होगा ।


0

मेरे मामले में यह विनफॉर्म फॉर्म्स से खोली गई विंडो के Xll में एक टाइपो था:

गलत: <Image Source="/Resources/WorkGreen.gif"/>

सही: <Image Source="../Resources/WorkGreen.gif"/> यह किसी की मदद कर सकता है


-3

से Microsoft समर्थन पेज :

यह समस्या तब होती है जब आप एक स्थानीय असेंबली संसाधन का उपयोग करते हैं जो कि एक सैटेलाइट असेंबली में मौजूद होता है जिसे आपने एक .resources फ़ाइल का उपयोग करके बनाया होता है जिसमें एक अनुचित फ़ाइल नाम होता है। यदि आप मैन्युअल रूप से सैटेलाइट असेंबली बनाते हैं तो यह समस्या आमतौर पर होती है।

इस समस्या को हल करने के लिए, जब आप Resgen.exe चलाते हैं, तो .resource फ़ाइल का फ़ाइल नाम निर्दिष्ट करें। जब आप .resource फ़ाइल का फ़ाइल नाम निर्दिष्ट करते हैं, तो सुनिश्चित करें कि फ़ाइल नाम आपके अनुप्रयोग के नामस्थान नाम से शुरू होता है। उदाहरण के लिए, Microsoft Visual Studio .NET कमांड प्रॉम्प्ट पर एक .resource फ़ाइल बनाने के लिए प्रॉम्प्ट करें जो फ़ाइल नाम की शुरुआत में आपके एप्लिकेशन का नामस्थान नाम है:

Resgen strings.CultureIdentifier.resx 
MyApp.strings.CultureIdentifier.resources

1
आपकी प्रतिक्रिया के लिए धन्यवाद, लेकिन मुझे नहीं पता कि ResGen.exe क्या है, मैंने कभी इसका उपयोग नहीं किया है, और स्पष्ट रूप से मैं इसका उपयोग नहीं करना चाहता क्योंकि मैं कुछ भी फैंसी का उपयोग करने की कोशिश नहीं कर रहा हूं। निश्चित रूप से विजुअल स्टूडियो से इसे ठीक करने का कोई तरीका होना चाहिए? उदाहरण के लिए, चूंकि आप कहते हैं कि संसाधन "स्थानीयकृत" है, मैं संसाधन को गैर-स्थानीयकृत कैसे घोषित करूं? एक बार फिर धन्यवाद।
तिमवी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.