मेटाडेटा फ़ाइल ... प्रोजेक्ट बनाते समय त्रुटि नहीं मिली


98

हर बार जब मैं विजुअल स्टूडियो 2008 शुरू करता हूं, तो पहली बार जब मैं प्रोजेक्ट को चलाने की कोशिश करता हूं तो मुझे त्रुटि मिलती है CS0006 मेटाडेटा फ़ाइल ... नहीं मिली। यदि मैं पूर्ण समाधान का पुनर्निर्माण करता हूं तो यह काम करता है।

समाधान के बारे में कुछ जानकारी:

  • मैं डिबग मोड में निर्माण कर रहा हूं और विज़ुअल स्टूडियो ने रिलीज़ फ़ोल्डर में dll: s नहीं ढूंढने की शिकायत की है।

  • विजुअल स्टूडियो प्रोजेक्ट्स के बारे में शिकायत करता है जिसका उपयोग समाधान में कई अन्य परियोजनाओं द्वारा किया जाता है।

  • मैंने सभी परियोजनाओं के डिफ़ॉल्ट आउटपुट पथ को क्रमशः ...... \ build \ debug \ ProjectName और ...... \ build \ release \ ProjectName में बदल दिया है। (बस एक निर्देशिका में सभी बिल्ड फ़ाइलें प्राप्त करने के लिए)

  • मैं एक और समाधान के साथ एक ही समस्या है।

  • समाधान खरोंच से बनाया गया था।

  • समाधान में 9 परियोजनाएं हैं। एक WPF और 8 वर्ग पुस्तकालयों का उपयोग डॉटनेट 3.5।

इस समस्या का कारण क्या है पर कोई विचार?


जवाबों:


133

मेरे पास ऐसा ही मुद्दा था जहां "मेटाडेटा नहीं मिल सका"। समाधान संपत्ति पर, सुनिश्चित करें कि प्रत्येक प्रोजेक्ट के लिए बिल्ड / कॉन्फ़िगरेशन प्रबंधक में "बिल्ड" चेक बॉक्स चिह्नित है ।


16
जो कोई भी इसे नहीं पा सकता है, बिल्ड / कॉन्फ़िगरेशन प्रबंधक बिल्ड मेनू -> कॉन्फ़िगरेशन प्रबंधक मेनू आइटम को संदर्भित करता है।
जॉन कुर्लाक

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

9
कभी-कभी यह भी मदद नहीं करेगा, जैसा कि ऊपर निक ने नोट किया है। उस स्थिति में वीएस को बंद करना और फिर से शुरू करना मेरे लिए हमेशा काम किया है। YMMV।
फिलोफिनफिनजेस्ट

3
समस्या हल नहीं हुई। मैंने वी.एस. को फिर से शुरू किया और इस मुद्दे को हल नहीं किया।
शिम्मी वेइटहैंडलर

26

यह आमतौर पर एक परियोजना के कारण होता है जो त्रुटि को फेंकने वाले की तुलना में एक अलग समाधान में संदर्भित होता है। यदि आप अन्य समाधान को साफ करते हैं, या कोड को शाखा देते हैं, तो आप इस त्रुटि को देखने की संभावना से अधिक करेंगे। समाधान "मेटाडेटा नहीं मिला" त्रुटियों की अपनी सूची को नीचे स्क्रॉल करने के लिए है, और परियोजनाओं के संदर्भ देखें। 9/10 बार, आप एक परियोजना के टूटे हुए संदर्भ देखेंगे जो इस समाधान में नहीं है। संदर्भ त्रुटियों को ठीक करने और पुनर्निर्माण के लिए प्रोजेक्ट्स जोड़ें। इसे ठीक करना चाहिए।

(मैं अभी इस में भाग गया, और अतीत में है, और यह हमेशा काम किया है)


केवल वे प्रोजेक्ट जो मेरे समाधान में हैं, शिकायत कर रहे हैं।
मफिन मैन

7

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

मेरे लिए समाधान यह पता लगा रहा था कि मेरे पास एक ही नाम वाली दो परियोजनाएं थीं, जो गलती से दोहराई गई थीं और पुराने गलत प्रोजेक्ट के संदर्भ को हटाकर नए का संदर्भ जोड़ दिया गया था।

किसी भी स्थिति में ऐसा लगता है कि ये संदेश एक लाल हेरिंग के हैं, मैं आपके निर्माण आउटपुट की जांच करूंगा और पहली परियोजना का पता लगाऊंगा जो निर्माण करने में विफल है और बहुत सावधानी से उस परियोजना के संदर्भों की जांच करें।


1
इन संदेशों की अशुद्धि के संबंध में नोट के लिए +1। यह मेरे लिए फ़सल बन गया क्योंकि एक समाधान में संदर्भित विधानसभाओं के रास्ते टूट गए थे। उन्हें पढ़कर और समझाकर समस्या का समाधान किया गया।
ई। रोड्रिगेज

6

सत्यापित करने के लिए एक और बात पथ की लंबाई है ... जो मेटाडेटा फ़ाइल का कारण भी बनती है और त्रुटियों का संकलन नहीं किया जाता है ... मैंने अपने फ़ोल्डरों का नाम बदलकर छोटे रास्तों और वॉइलैला कर दिया, जिन कक्षाओं को मान्यता नहीं थी और वे काले रहे, उनका नाम बदलकर नीला कर दिया गया फ़ोल्डर।


5

मेरे लिए मेरे पास एक प्रोजेक्ट था जिसे दूसरे प्रोजेक्ट में संदर्भित किया गया था। यह नहीं दिखा कि यह समाधान एक्सप्लोरर विंडो में संदर्भ सूची में टूट गया था, लेकिन मैंने इसे हटा दिया और इसे वैसे भी पढ़ा। यह अभी ठीक बनाता है!


यह वास्तव में है, मैंने सभी संदर्भों को हटा दिया और उन्हें फिर से जोड़ा।

3

मैं VS2012 में इन सभी चरणों से गुज़री, लेकिन मैं इस मुद्दे को हल करते हुए चलती रही जब समाधान को समग्र रूप से बनाया गया (व्यक्तिगत परियोजनाओं को बिना किसी त्रुटि के ठीक बनाया गया)।

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

आप निर्भरता टैब पर क्लिक करके और समाधान में अन्य परियोजनाओं पर निर्भर परियोजनाओं का चयन करके और उन प्रोजेक्ट्स की जांच कर सकते हैं, जो आप पर निर्भर करते हैं। एक बार जब आप ठीक से टकराते हैं और समाधान का पुनर्निर्माण करते हैं, तो आपको जाने के लिए अच्छा होना चाहिए।


2

जिस तरह से मैंने वीएस 200 के अतीत में और साथ ही अब वीएस 200 के अतीत में इसे गोल किया है, यह सुनिश्चित करने के लिए है कि सभी निर्भरताएं सही हैं और संदर्भ परियोजनाओं को इंगित कर रहे हैं न कि डीएलएस को। फिर निर्भरता क्रम में प्रत्येक परियोजना का निर्माण और संचालन करें। एक बार अंतिम बनने के बाद आप एक पूर्ण समाधान बिल्ड और उसका जुर्माना चला सकते हैं।

यह उत्तर दूसरों के भविष्य के संदर्भ के लिए है क्योंकि मुझे पता है कि प्रश्न 15 महीने से अधिक पुराना है।

चियर्स


2

मेरे पास कुछ बिंदु हैं जिन्हें मैं बनाना चाहूंगा।

यदि आप MSBuild के तहत आपकी बिल्ड फ़ाइल के रूप में समाधान फ़ाइल पर भरोसा कर रहे हैं, तो सुनिश्चित करें कि आप परियोजनाओं में समाधान फ़ाइल में उस क्रम में जोड़ते हैं जिसमें आप उन्हें बनाना चाहते हैं, अर्थात, परियोजनाओं के पारस्परिक निर्भरता क्रम के आधार पर। यह बहुत महत्वपूर्ण हो जाता है यदि आपके पास समाधान में ऐसी परियोजनाएं हैं जो अन्य परियोजनाएं निर्भर करती हैं, लेकिन संदर्भ "प्रोजेक्ट संदर्भ" के बजाय "संदर्भ" के रूप में जोड़े गए हैं।

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

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

मेरे पास कुछ उदाहरण हैं जहां मुझे उस ऑर्डर को हाथ लगाना था जिसमें प्रोजेक्ट्स समाधान फ़ाइल में दिखाई देते हैं और साथ ही प्रोजेक्ट फ़ाइल में प्रोजेक्टReferences तत्व में प्रोजेक्ट फ़ाइल में जिस क्रम में सूचीबद्ध किए गए थे।

मुझे उम्मीद है कि उपरोक्त जानकारी मदद करती है।


2

यदि आप LinqtoSQL डेटा संदर्भों का उपयोग करते हैं, उदाहरण के लिए, और .designer.cs फ़ाइल अनुपलब्ध है, तो आपको मेटाडेटा फ़ाइल मिल जाएगी त्रुटि नहीं मिली।

Designer.cs फ़ाइल को फिर से बनाना आसान है।

Xml दृश्य का उपयोग करके dbml खोलें। एक रिक्त रेखा जोड़ें, फिर इसे हटा दें, फिर सहेजें। कि अपने डिजाइनर। फाइल पुनर्जीवित करना चाहिए।

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


2

जब भी मैं SVN से प्रोजेक्ट को अपडेट करता हूं, मुझे एक समान समस्या होती है।
ASP.NET के लिए एक और समाधान:

  1. आईडीई बंद करें।
  2. में फ़ाइलें हटाएँ C:\WINDOWS\microsoft.net\framework\v…\Temporary ASP.NET File\

1

मैंने भी इस त्रुटि का अनुभव किया और इसका कारण यह था कि यह परियोजना स्वयं संदर्भित है। मुझे नहीं पता कि यह कैसे हुआ लेकिन मैंने अभी संदर्भ और वॉइला को हटा दिया है


1

पहले सुनिश्चित करें कि प्रत्येक प्रोजेक्ट के लिए बिल्ड -> कॉन्फ़िगरेशन प्रबंधक में "बिल्ड" चेक बॉक्स चिह्नित है।

यदि आपके पास बिल्ड -> कॉन्फ़िगरेशन प्रबंधक मेनू के तहत पहले से ही चयनित सभी परियोजनाएं हैं, और वीएस ट्रिक को फिर से शुरू करना आपके लिए काम नहीं करता है, तो आपको फ़ाइल (एस) या (डीएल या सीएस हो सकता है) का संदर्भ ढूंढना होगा। आपकी परियोजना और उन संदर्भों को मैन्युअल रूप से हटा दें। उन फ़ाइल (ओं) / संदर्भ (ओं) को पीले आइकन के साथ प्रदर्शित किया जाना चाहिए। त्रुटि निश्चित रूप से आपको निर्देशित करती है कि आपको समाधान की कौन सी परियोजना देखनी चाहिए।

इस त्रुटि का कारण यह है कि आपने फ़ाइल को विंडोज एक्सप्लोरर में मैन्युअल रूप से हटा दिया है और वीएस ने संदर्भ को अपडेट नहीं किया है और उस फाइल का पता लगाने की कोशिश की जा रही है जो अब मौजूद नहीं है!


1

मेरे मामले में, मुझे पता चला कि मेरा एक समाधान कंप्यूटर (VBIDE) पर कुछ ऐसा नहीं था। एक बार जब मैंने अपमानजनक संदर्भ को हटा दिया, तो बाकी परियोजनाएं सही तरीके से निर्मित हुईं। आशा है कि किसी की मदद करता है।

और दूसरी स्थिति में, मैंने कुछ कोड को एक प्रोजेक्ट से दूसरे प्रोजेक्ट में स्थानांतरित कर दिया, और कोड का वह भाग Json.net को संदर्भित कर रहा था। मैंने मैन्युअल रूप से Json.net पर एक संदर्भ जोड़ा, लेकिन इससे समस्या इसके बारे में आई। मैंने NuGet के माध्यम से Json.net को स्थापित करके इसे हल किया और इससे समस्या दूर हो गई। आशा है कि किसी की मदद करता है।


0

हुआ भी वही। मेरे पास एक ही पुस्तकालय परियोजनाओं (.net 3.5) को संदर्भित करने वाले कई समाधान हैं। मैंने देखा कि जब एक डिबग / सामान्य कॉन्फ़िगरेशन में बनाया गया था, और दूसरे ने कुछ अन्य संकलक निर्देश (साइक्लाइट / स्थानीय मोड) का उपयोग किया, तो यह होगा। बस एक ही निर्देश के साथ दोनों परियोजनाओं का निर्माण करें और आपको ठीक होना चाहिए।


0

यदि आपने समाधान में कोई नया प्रोजेक्ट जोड़ा है, तो जांचें कि यह बिल्ड सूची में है (कॉन्फ़िगरेशन प्रबंधक देखें)


0

जब मैं मतलाब द्वारा बनाई गई dll फ़ाइल को शामिल करना चाहता था, तो मैं इस समस्या से बच गया। और मैंने आखिरकार इसे एक .ctf फ़ाइल की प्रतिलिपि द्वारा हल किया, जिसका अर्थ है कि मैं जो प्रमाण पत्र मानता हूं, और एक .netmodule, जो .dll के उचित संचालन के लिए .dll फ़ाइल के साथ आवश्यक है। और वह वास्तव में काम किया! इसलिए, मेरा सुझाव यह देखना है कि क्या .dll को किसी अन्य फाइल के साथ की जरूरत है।


0

विंडोज 7 अल्टीमेट 32 विजुअल स्टूडियो 2008 एसक्यूएल सर्वर v2005

मुझे वही त्रुटि प्राप्त हो रही थी। और मैंने परियोजना के संदर्भों को हटाने और फिर से जोड़ने का फैसला किया। मैं उन्हें वापस जोड़ने में असमर्थ था क्योंकि संदर्भित परियोजनाओं में से प्रत्येक में डेटाबेस संदर्भ रिक्त था।

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

शुभ लाभ


0

मुझे यह त्रुटि थी कि यह मेरी एक परियोजना निर्भरता के कारण हुआ था, जहां परियोजना में विधानसभा का नाम बदल दिया गया था, लेकिन संदर्भ अपडेट नहीं किया गया था। इसलिए संदर्भ को अपडेट करना या असेंबली का नाम बदलना इसे ठीक कर देगा।


0

ईई - मेरे मामले में समस्या परियोजना में थी जिसमें इकाई ढांचा है, आरेख को किसी भी तालिका को 2 सेमी :) खोलें और सहेजें, वीएस अपने सभी लिंक डीबी को अपडेट करेगा ... इस परियोजना का निर्माण करें और समाधान का निर्माण करें , बनाता है।


0

केवल एक चीज जिसने मुझे तय किया (क्योंकि मैं एक व्यवस्थापक खाते पर VS2010 नहीं चला रहा हूं) सिस्टम चर से उपयोगकर्ता चर के लिए मैन्युअल रूप से पर्यावरण चर VS120COMNTOOLS को स्थानांतरित करना है।


0

सभी स्रोत फ़ाइलों की प्रविष्टियों को हटाना जो अब स्रोत नियंत्रण में मौजूद नहीं हैं और आपकी .csproj फ़ाइल से फ़ाइल सिस्टम ने मेरे लिए काम किया है।


विस्तृत दृष्टिकोण:

खैर, मेरा निम्नलिखित उत्तर केवल सभी समाधानों का सारांश नहीं है, बल्कि यह उससे कहीं अधिक प्रदान करता है।

अनुभाग एक):

सामान्य समाधानों में:

मेरे पास इस तरह की 4 त्रुटियां थीं ('मेटाडेटा फ़ाइल नहीं मिल सकी') साथ में 1 त्रुटि यह कहते हुए कि 'स्रोत फ़ाइल नहीं खोली जा सकती (' अनिर्दिष्ट त्रुटि ')'।

मैंने 'मेटाडेटा फ़ाइल नहीं मिल सकी' त्रुटि से छुटकारा पाने की कोशिश की। उसके लिए, मैंने कई पोस्ट, ब्लॉग आदि पढ़े और पाया कि ये समाधान प्रभावी हो सकते हैं (इन्हें यहाँ संक्षेप में प्रस्तुत करना):

  1. VS को पुनरारंभ करें और फिर से निर्माण करने का प्रयास करें।

  2. पर जाएं 'समाधान एक्सप्लोरर' । समाधान पर राइट क्लिक करें। गुण पर जाएं । पर जाएं 'विन्यास प्रबंधक' । जांचें कि 'बिल्ड' के तहत चेकबॉक्स चेक किए गए हैं या नहीं। यदि उनमें से कोई भी या सभी अनियंत्रित हैं, तो उन्हें जांचें और फिर से निर्माण करने का प्रयास करें।

  3. यदि उपरोक्त समाधान (कार्य) काम नहीं करते हैं, तो उपरोक्त चरण 2 में उल्लिखित अनुक्रम का पालन करें, और यहां तक ​​कि यदि सभी चेकबॉक्स चेक किए गए हैं, तो उन्हें अनचेक करें, फिर से जांचें और फिर से निर्माण करने का प्रयास करें।

  4. आदेश और परियोजना निर्भरता बनाएँ:

    पर जाएं 'समाधान एक्सप्लोरर' । समाधान पर राइट क्लिक करें। पर जाएं 'परियोजना निर्भरता ...' । आपको 2 टैब दिखाई देंगे: 'डिपेंडेंसी' और 'बिल्ड ऑर्डर' । यह बिल्ड ऑर्डर वह है जिसमें समाधान बनता है। परियोजना की निर्भरता की जाँच करें और यह सत्यापित करने के लिए बिल्ड ऑर्डर करें कि क्या कुछ प्रोजेक्ट ('प्रोजेक्ट 1') जो अन्य पर निर्भर है ('प्रोजेक्ट 2') उस एक (प्रोजेक्ट 2) से पहले निर्माण करने की कोशिश कर रहा है। यह त्रुटि का कारण हो सकता है।

  5. लापता .dll का पथ जांचें:

    लापता .dll का पथ जांचें। यदि पथ में स्थान या कोई अन्य अमान्य पथ वर्ण है, तो उसे निकालें और पुन: निर्माण का प्रयास करें।

    यदि यह कारण है, तो बिल्ड ऑर्डर को समायोजित करें।


धारा 2):

मेरा विशेष मामला:

मैंने विभिन्न चरणों और संयोजनों के साथ उपरोक्त सभी चरणों को वी.एस. को फिर से शुरू करने की कोशिश की। लेकिन, इससे मुझे कोई फायदा नहीं हुआ।

इसलिए, मैंने उस दूसरी त्रुटि से छुटकारा पाने का फैसला किया, जो मुझे आ रही थी ('सोर्स फाइल नॉट बी ओपन' ('अनिर्दिष्ट त्रुटि') ')।

मुझे एक ब्लॉग मिला: http://www.anujvarma.com/tfs-errorsource-file-could-not-be-opened-unspecified-error/#comment-1539

मैंने उस ब्लॉग में वर्णित चरणों की कोशिश की और मुझे त्रुटि से छुटकारा मिल गया 'सोर्स फाइल नॉट बी ओपन (' अनिर्दिष्ट त्रुटि ')' ' और आश्चर्यजनक रूप से मुझे अन्य त्रुटियों से छुटकारा मिला (' मेटाडेटा फ़ाइल नहीं मिली ') भी।


धारा 3):

कहानी का नैतिक:

त्रुटि से छुटकारा पाने के लिए ऊपर (और किसी भी अन्य समाधान) अनुभाग (1) में वर्णित सभी समाधानों को आज़माएं। यदि कुछ भी काम नहीं करता है, तो ऊपर दिए गए खंड (2) में वर्णित ब्लॉग के अनुसार, उन सभी स्रोत फ़ाइलों की प्रविष्टियों को हटा दें जो अब स्रोत नियंत्रण में मौजूद नहीं हैं और आपकी .csproj फ़ाइल से फ़ाइल सिस्टम


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.