2012-02-08 13 views
14

मैं एक विंडोज पर एक FileNotFoundException हो रही है आवेदन परियोजना फॉर्म्स, निम्न संदेश के साथ:नेट 2.0 पर त्रुटि "फ़ाइल या विधानसभा System.Drawing या उसके निर्भरता से एक लोड नहीं कर सका", VS2010 और Windows 8

Could not load file or assembly 'System.Drawing, Version=4.0.0.0, 
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. 
The system cannot find the file specified. 

समस्या को दोहराने के लिए:

  • चुनें नई, परियोजना, नेट फ्रेमवर्क 2.0 लक्ष्य के रूप में चुनें और Windows Forms परियोजना प्रकार के रूप में आवेदन लेने।
  • डिफ़ॉल्ट रूप से बनाए गए फॉर्म के गुणों पर, आइकन संपत्ति के लिए एक मान का चयन करें। कोई भी .ico फ़ाइल करेगा। यह फ़ाइल को resx फ़ाइल पर एम्बेड करेगा।
  • एप्लिकेशन को संकलित और चलाएं।

जब मैं ऐसा करते हैं, कार्यक्रम निम्नलिखित अपवाद के साथ लाइन this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); पर बंद हो जाता है:

System.IO.FileNotFoundException was unhandled 
    Message=Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. 
    Source=mscorlib 
    FileName=System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 

मैं दृश्य स्टूडियो 2010 SP1 पर इस हो रही है, हाल ही में Windows 8 डेवलपर पूर्वावलोकन पर स्थापित। यदि मैं प्रोजेक्ट गुणों को लक्षित करने के लिए प्रोजेक्ट गुणों को बदलता हूं। नेट फ्रेमवर्क 4, त्रुटि दूर हो जाती है।

Form1.resx फ़ाइल पर, मैं देख सकता हूँ कि System.Drawing विधानसभा के संस्करण स्पष्ट रूप से 2.0 के रूप में कहा गया है:

<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 

कोई भी विचार?

+2

यह नेट 4.0 दृश्य स्टूडियो 2010 संसाधनों चूक में एक बग है। यदि आपके संसाधनों में छवियों या ग्राफिक्स का उपयोग करने वाली कोई भी चीज़ है, तो यह स्वचालित रूप से 4.0 तक डिफ़ॉल्ट हो जाएगी, इससे कोई फर्क नहीं पड़ता कि आपने क्या लक्ष्य निर्धारित किया है। – vulkanino

+0

@ vulkanino गंभीरता से? क्या कोई कामकाज है? संसाधन को गतिशील रूप से लोड करने के अलावा, ज़ाहिर है। – Leonardo

+0

कृपया मेरा उत्तर पढ़ें। – vulkanino

उत्तर

4

मैं एक संभव समाधान मिल गया है, इस प्रयास करें:

ओपन डिज़ाइनर में resx फ़ाइल और कोई कोड पीढ़ी के लिए जनता से accessmodifier निर्धारित किया है।

संपादित करें: एक कामकाज है, लेकिन हालांकि बहुत परेशान है।

  1. डिज़ाइनर में ओपन फॉर्म और आवश्यक जीयूआई परिवर्तन करें। बंदरगाह बंद करें और
  2. संकलित करें और RESX संकलन त्रुटि प्राप्त करें (केवल इमेजेलिस्ट के साथ यह फ़ॉर्म होना चाहिए)
  3. resx फ़ाइल खोलने के लिए resx संकलन त्रुटि को डबल-क्लिक करें।
  4. इमेजस्ट्रीम के शीर्ष पर स्क्रॉल करें।
  5. संपादित छवि स्ट्रीम के ऊपरी पंक्ति: AAEAAAD ///// AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w को AAEAAAD ///// AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
  6. बंद और resx फ़ाइल को सहेजने और पुनः संकलित करें।

** नोट: फर्क सिर्फ इतना पात्रों अंत "j00LjAuMC4w 'करने के लिए" j0yLjAuMC4w " पर यह हर बार जब आप डिजाइनर मोड में फॉर्म को खोलने के लिए किया जाना चाहिए रहे हैं

माइक्रोसॉफ्ट का कहना है कि वे जा रहे हैं। अगले वी.एस. संस्करण में इसे ठीक करने के ...

स्रोत:। http://connect.microsoft.com/VisualStudio/feedback/details/532584/error-when-compiling-resx-file-seems-related-to-beta2-bug-5252020

+1

यह कोड कोड बनाने के लिए सेट किया गया था। मैंने नोटिस किया कि संसाधन प्रकार सिस्टम था। ड्रॉइंग, संस्करण 4.0.0.0। तो मैंने आइकन को मैन्युअल रूप से हटा दिया और संपादक को फिर से जोड़ा, फिर उसका नाम बदल दिया। अब प्रकार सिस्टम है। ड्रॉइंग, संस्करण 2.0.0.0, फिर भी ऐप चलाने पर मुझे एक ही अपवाद मिल रहा है। – Leonardo

+2

मैं इस वर्कअराउंड का उपयोग नहीं कर सका, क्योंकि समस्या को ट्रिगर करने वाला संसाधन एक आइकन है, छवि स्ट्रीम का हिस्सा नहीं है (बेस 64 स्ट्रिंग अलग है)। हालांकि लिंक ने समस्या की जड़ पर कुछ प्रकाश डाला। धन्यवाद। – Leonardo

9

यह एक बग है। मैंने इसे भी देखा है। ऐसा इसलिए होता है क्योंकि आपकी .resx फ़ाइल सिस्टम के 4.0.0.0 संस्करण को इंगित कर रही है। जहां कोई मौजूद नहीं है वहां जा रहा है। इस समस्या को दूर करने के लिए मैं आमतौर पर 4.0.0.0 से 2.0.0.0 बदलने के लिए नोटपैड में .resx संपादित करता हूं। आपके द्वारा उल्लिखित सटीक चरणों का पालन करके बग पेश किया गया है।

+2

मैंने टेक्स्ट संपादक पर .resx फ़ाइल खोल दी और सभी संदर्भ सही ढंग से 2.0.0.0 पर सेट किए गए थे। गलत संस्करण लोडिंग रनटाइम पर होती है। – Leonardo

5

यह समस्या है, तो .net 4.5 पूर्वावलोकन resgen संसाधन फ़ाइलों को बनाने के लिए प्रयोग किया जाता है हो सकता है

मुझे अपने लैपटॉप (विंडोज 7, वीएस -2010 प्रीमियम, वीएस 11 डेवलपर पूर्वावलोकन) पर एक ही समस्या है। जब मैं एक फॉर्म पर 'localizable = true' कहता हूं तो मुझे यह समस्या एक साधारण रूप परियोजना के साथ मिल गई। मेरे मामले में कोई छवि डेटा शामिल नहीं है। परियोजना शुद्ध करने के लिए 3,5

private void InitializeComponent() 
{ 
    System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); 
    this.SuspendLayout(); 
    // 
    // Form1 
    // 
    resources.ApplyResources(this, "$this"); //exception Could not load file or assembly 'System.Drawing, Version=4.0.0.0, 

मैं फिर एक और मशीन के लिए इस परियोजना को कॉपी (विंडोज 7, VS2010 प्रीमियम) और यह डिबग करने के लिए प्रयास करते हैं तो सेट कर दिया जाता है, त्रुटि बनी हुई है। त्रुटि अगर मैं समाधान (परियोजना नहीं) को साफ करता हूं (या हाथ से बिन/ओबीजे हटाता हूं) यदि मैं इस समाधान को अपने लैपटॉप पर वापस कॉपी करता हूं, तो त्रुटि समाप्त हो जाती है, लेकिन मैं फिर से फॉर्म नहीं देख सकता डिज़ाइन व्यू 'Error message: at System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.EnsureDocument(IDesignerSerializationManager manager)'

यह सभी कारण * .Nesigner.cs फ़ाइलों में .NET संस्करण प्रतीत होता है।

  1. रनटाइम संस्करण: जहां यह काम करता है कंप्यूटर पर 4.0.30319.239,
  2. रनटाइम संस्करण: लैपटॉप जहां मैं अपवाद पर 4.0.30319.17020

क्या कोई मुझे बता सकता है कि मैं कहां कॉन्फ़िगर कर सकता हूं कि .NET 3.5 परियोजनाओं से निपटने के दौरान कौन सा resgen संस्करण उपयोग किया जाता है?

+0

इस उत्तर के लिए धन्यवाद! मुझे वास्तव में भी यह समस्या थी, लेकिन यह Google के लिए एक मुश्किल और निदान करने में मुश्किल है ... –

1

मुझे यह समस्या थी और पाया कि यह अजीब रूप से .NET 4.5 बीटा के साथ करना था। इसे अनइंस्टॉल करना, और .NET 4.0 को पुनर्स्थापित करना समस्या को दूर करने का कारण बन गया। सुनिश्चित नहीं है कि .NET 4.5 बीटा स्थापित करने का कोई तरीका है और एक साथ .NET 2.0 प्रोजेक्ट से संसाधनों का उपयोग करें।

0

मुझे हाल ही में एक ही त्रुटि संदेश था जब किसी ग्राहक ने मुझे एप्लिकेशन को डाउनग्रेड करने के लिए कहा था।

विजुअल स्टूडियो 2010 प्रोफेशनल का उपयोग करके मैंने .NET Framework 4 से .NET Framework 3.5 तक लक्ष्य ढांचे को बदल दिया। बिल्डिंग तब निर्दिष्ट त्रुटि संदेश के साथ विफल रही। समाधान अनुप्रयोग संसाधनों से समस्या उत्पन्न करने वाली छवि फ़ाइल को निकालना था। इसे फिर से जोड़ना, सिस्टम। ड्रॉइंग संस्करण 2.0.0.0 के रूप में सूचीबद्ध किया गया था, और भवन सफल हुआ।

0

मैं एक ही मुद्दे में भाग गया और ऊपर दिए गए सुझावों में से कोई भी मेरे लिए काम किया है, इसलिए मैं निम्नलिखित किया: समाधान एक्सप्लोरर
को

ओपन आप परियोजना
जाओ संदर्भ समूह को विस्तृत
हटाएं सिस्टम। ड्रॉइंग संदर्भ
संदर्भ समूह
पर राइट क्लिक करें संदर्भ
".NET" टैब पर, सिस्टम के लिए खोजें।सही संदर्भ जोड़ने के लिए चित्रण

1

मुझे एक ही समस्या थी।

मैंने मरम्मत 4.5.1 की मरम्मत की और इसे ठीक कर दिया।

0

मुझे एक ही समस्या थी .. मेरे ढांचे के साथ 2.0 परियोजना 4.0 डीएल संदर्भित रखती है। जिस तरह से मैं इसे ठीक करने में सक्षम था ... बस अपने प्रोजेक्ट संदर्भ पर जाएं -> "Syste.Drawing" चुनें -> गुण और वहां सटीक संस्करण = सही

का चयन करें यह 2.0 फ्रेमवर्क डीएल का उपयोग करने के लिए मजबूर होगा।

उम्मीद है कि इससे मदद मिलती है।

चीयर्स !!!

0

मैंने भी इस समस्या का अनुभव किया है, और मेरे मामले में कारण समानांतर में दो अनिवार्य रूप से डुप्लिकेट परियोजनाएं बना रहा था, एक लक्ष्यीकरण .NET 2.0 और अन्य लक्ष्यीकरण .NET 4.0, दोनों में अधिकतर कोड और संसाधन होते हैं। यदि समय सही था, तो 2.0 प्रोजेक्ट 4.0 प्रोजेक्ट से आउटपुट फाइल लेगा, और 4.0 पुस्तकालयों को संदर्भित करेगा।

मैंने इसे एक दूसरे पर निर्भर करते हुए श्रृंखला में परियोजनाओं का निर्माण करके तय किया।

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

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