2008-11-30 14 views
96

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

समाधान बारे में कुछ जानकारी: रिलीज फ़ोल्डर में रों:

  • मैं डिबग मोड और दृश्य स्टूडियो में निर्माण कर रहा हूँ के बारे में dll नहीं मिल शिकायत नहीं है।

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

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

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

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

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

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

+0

http://stackoverflow.com/a/17723774/1724702 –

उत्तर

132

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

+15

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

+11

मेरे सभी बक्से पहले से ही चेक किए गए हैं, इसलिए यह मेरी मदद नहीं करता है। –

+4

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

7

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

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

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

+1

इन संदेशों में से अशुद्धि के बारे में टिप्पणी के लिए +1। यह मेरे लिए उगाया गया क्योंकि समाधान में संदर्भित असेंबली के पथ टूट गए थे। उन्हें पढ़ना और समस्या हल करने के लिए recompiling। –

0

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

26

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

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

+0

केवल मेरे समाधान में मौजूद परियोजनाएं शिकायत कर रही हैं। –

2

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

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

चीयर्स

0

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

0

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

2

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

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

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

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

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

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

0

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

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

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

गुड लक

2

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

designer.cs फ़ाइल को पुन: प्रयास करना आसान है।

एक्सएमएल व्यू का उपयोग करके डीबीएमएल खोलें। एक खाली रेखा जोड़ें, फिर इसे हटा दें, फिर सहेजें। यह आपके designer.cs फ़ाइल को पुन: उत्पन्न करना चाहिए।

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

1

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

6

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

5

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

+0

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

2

प्रत्येक बार जब मैं एसवीएन से परियोजना अद्यतन करता हूं तो मुझे एक ही समस्या होती है।
ASP.NET के लिए एक अन्य समाधान:

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

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

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

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

1

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

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

0

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

0

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

0

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

1

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

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

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

0

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


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

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

धारा (1):

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

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

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

  1. पुनः प्रारंभ वी.एस. और निर्माण फिर कोशिश करें।

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

  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 फ़ाइल से फ़ाइल सिस्टम में मौजूद नहीं हैं, तो सभी स्रोत फ़ाइलों की प्रविष्टियों को हटाएं।


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