VS 2017 मेटाडेटा फ़ाइल '.dll नहीं मिली


86

मुझे पता है कि एक ही समस्या के साथ एक और सवाल है, लेकिन मैं उन सभी उत्तरों को गर्त में गया, और किसी ने मेरी मदद नहीं की। :( यह सवाल था। )

मैंने बस एक नया ASP.NET MVC प्रोजेक्ट बनाया और कुछ '.dll के समाधान में शामिल हुआ। अब जब मैं प्रोजेक्ट बनाने की कोशिश करता हूं तो मुझे नीचे दी गई 5 में से 3 लाइब्रेरी दिखाई जाती हैं।

Error   CS0006  Metadata file 'C:\Users\...\source\Database\bin\Debug\DataAccessLayer.dll' could not be found   Logic   C:\Users\...\source\Logic\CSC   1   Active

Error   CS0006  Metadata file 'C:\Users\...\source\Logic\bin\Debug\Logic.dll' could not be found    PTS2-MVC    C:\Users\...\source\PTS2-MVC\CSC    1   Active

Error   CS0006  Metadata file 'C:\Users\...\source\PTS2-MVC\bin\PTS2-MVC.dll' could not be found    PTS2-MVC.Tests  C:\Users\...\source\PTS2-MVC.Tests\CSC  1   Active

जब मैं उस .dll के बिन \ डिबग फ़ोल्डर में जाता हूं, तो मैं देखता हूं कि यह खाली है, और दूसरा .dll जहां मुझे कोई त्रुटि संदेश नहीं मिलता है, खाली नहीं है। लेकिन मैं इस बात पर अडिग हूं कि इसे कैसे ठीक किया जाए या मैंने ऐसा करने के लिए क्या किया।

सबसे आम जवाब समाधान के गुणों पर जाना और कॉन्फ़िगरेशन पर जाना और अनचेक करना है -> लागू करें -> जांच करें और फिर से आवेदन करें, लेकिन काम नहीं किया


बस एक अनुमान है, लेकिन ऐसा लगता है जैसे वीएस ने उन लोगों को साफ किया। मुझे यकीन नहीं है कि उन dlls क्या हैं या वे कहाँ से हैं, लेकिन अगर आप एक हैं जो उन्हें बनाया है तो मुझे यकीन है कि जो कुछ भी समाधान वे उन्हें बना रहे हैं। यदि ये फ़ोल्डर आपके वर्तमान समाधान का निर्माण कर रहे हैं, तो यह आपके समाधान को फिर से साफ करने के बाद इन्हें ढूंढ नहीं पाएंगे।
TheNoob

स्वच्छ ^ पुनर्निर्माण || अपने दृश्य को पुनः आरंभ करें, फिर से जांचें
आसिफ रज़ा

@AsifRaza मैंने पहले ही कई बार ऐसा किया, लेकिन मेरे साथ सोच रहा था :)
स्वेनमारिम

1
@ TheNoob तो आप कहते हैं कि मुझे अपने समाधान को साफ करने और फिर इसे बनाने की कोशिश करने की ज़रूरत है? क्योंकि मैंने पहले ही कोशिश की थी कि
स्वेनमारिम

बिन फ़ोल्डर से सभी को हटा दें, फिर ^ ^ चेक का पुनर्निर्माण करें
आसिफ रज़ा

जवाबों:


121

समस्या यह थी कि मेरे प्रोजेक्ट में कुछ अन्य सामान्य त्रुटि संदेश थे, और जाहिर तौर पर मैंने उन्हें ठीक करने के बाद और जब मैंने अपनी परियोजना को फिर से बनाया और साफ किया, तब सभी .dll सफल हुए।

सुनिश्चित करें कि आपके पास अपने प्रोजेक्ट में कोई अन्य त्रुटि संदेश नहीं है और यदि आप ऐसा करते हैं, तो पहले उन्हें ठीक करें!


6
मैं वास्तव में एक ही मुद्दा था, लेकिन कोई अन्य त्रुटियाँ नहीं दिखा रहा था, केवल लापता के बारे में 1 त्रुटि। Dll। लेकिन फिर कुछ बिंदु पर (मेरे बिना किसी भी कोड को बदलते हुए), अचानक एक सिंटैक्स त्रुटि दिखाई दी जो पहले नहीं दिखाई दे रही थी। एक बार जब मैंने उस त्रुटि को ठीक कर लिया, तो जैसा आपने कहा, मैंने साफ किया, पुनर्निर्माण किया, और सब कुछ काम किया।
jbyrd

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

1
मैंने पाया कि मुझे दृश्य स्टूडियो में अपनी "त्रुटि सूची" टैब में चेतावनी को सक्षम करना था। यह चेतावनी में था कि मैंने देखा कि एक संदर्भित। Dll को हल नहीं किया जा सकता है। मुझे मौजूदा संदर्भ को हटाना और सही निर्देशिका में एक नया जोड़ना था। अभी सब ठीक है।
user1431072

ऊपर मेरी टिप्पणी देखें, लेकिन मूल रूप से वीएस में कुछ बग को छोड़कर एक ही चीज त्रुटियों को दिखाने से रोक रही थी जब तक कि मैं समाधान संपत्ति पृष्ठों में बिल्ड विकल्पों को अनचेक / चेक नहीं करता।
लूटता

1
यह एकमात्र उत्तर है जिसने वास्तव में मेरी मदद की। उत्तम! धन्यवाद!
20s at ʌıʌ

35

इस त्रुटि को ठीक करने के चरण: मेटाडेटा फ़ाइल। Dll नहीं मिली।

  1. सभी परियोजनाओं को साफ करें।

  2. सभी परियोजनाओं को अनलोड करें।

  3. सभी परियोजनाओं को पुनः लोड करें।

  4. ReBuild समाधान।

फिर समस्या हल हुई।


1
इसने वास्तव में मेरा मामला तय कर दिया।
वू गुयेन

उतराई और फिर से लोड करना मेरे लिए महत्वपूर्ण था। मैंने इस मुद्दे पर एक लंबा समय बिताया जब तक कि ऐसा नहीं किया!
.िकारीव

15

मेरे मामले में, एक त्रुटि थी, लेकिन इसे वीएस द्वारा ठीक से पार्स नहीं किया गया और "त्रुटि सूची" विंडो में दिखाया गया। इसे खोजने के लिए, आप बिल्ड विंडो और पार्स से ol "आउटपुट" को बहुत ऊपर से शुरू होने वाले संदेशों के माध्यम से देखते हैं और वास्तविक त्रुटि को हल करते हैं। एम $, कृपया ठीक करें! यह दुनिया के सामूहिक डेवलपर्स के समय की एक बड़ी बर्बादी है।


1
इससे मेरे लिए समस्या हल हो गई। अन्य सभी समाधानों की कोशिश की, लेकिन आउटपुट विंडो ने मुझे अपने प्रोजेक्ट को नेटफ्रामवर्क 4.7.2 के खिलाफ बनाया जा रहा है, जो लक्षित फ्रेमवर्क नेटफ्रामवर्क 4.6 से अधिक था। बस 4.6 पर इंगित करने के लिए .csjproj को संपादित करना था।
कैलम मुलेन

11

अपने प्रोजेक्ट फ़ोल्डर का नाम दोहराएं। मेरे मामले में मेरे प्रोजेक्ट फ़ोल्डर को इसमें रिक्त स्थान के साथ नामित किया गया था। जब मैंने टीम फाउंडेशन सर्वर से प्रोजेक्ट का क्लोन किया था, फ़ोल्डर नाम में रिक्त स्थान का उपयोग करके इसे "% 20" में कनवर्ट किया गया। उन स्थानों पर वापस बदलने से मेरे लिए समस्या तय हो गई।


2
वही समस्या, क्योंकि STUPID VSTS है।
आर्सेन खाचरतन

2
यह उपरोक्त त्रुटि का सटीक कारण था। पारितोषिक के लिए धन्यवाद। यह काम किया
user3785553

10

मेरे पास कई परियोजनाओं वाले समाधान के साथ यह मुद्दा था।

यह एक .csproj की नकल और समाधान में कॉपी को जोड़ने से आया है । एक .csproj फ़ाइल एक में शामिल <ProjectGuid>तत्व। मैंने कॉपी किए गए प्रोजेक्ट के GUID को एक नए सेट पर सेट किया।

अद्यतन: आप किस GUID का उपयोग करते हैं, इससे कोई फर्क नहीं पड़ता, इसे बस अन्य प्रोजेक्ट के GUID से भिन्न होना चाहिए। आप Visual Studio के भीतर से एक नया GUID बना सकते हैं: Tools -> Create GUIDऔर घुंघराले कोष्ठक के बीच के भाग को कॉपी कर सकते हैं, अर्थात {...}<ProjectGuid>तत्व के लिए नए मान के रूप में उपयोग करें ।

मैंने भी निम्न चरणों का पालन किया (विशेष रूप से परिशिष्ट नहीं, लेकिन वे चोट नहीं पहुंचाते):

  1. समाधान बंद करें
  2. बिन फ़ोल्डर हटाएँ
  3. सभी obj फ़ोल्डर हटाएँ
  4. समाधान खोलें और निर्माण करें

6

मैं इस कदम के बाद इस समस्या को ठीक करता हूं:

  1. स्वच्छ समाधान
  2. Visual Studio को बंद करें
  3. प्रोजेक्ट निर्देशिका से हटाना / बिन
  4. Visual Studio को पुनरारंभ करें
  5. समाधान का पुनर्निर्माण करें

1
धन्यवाद, 5 घंटे की खोज और कोशिश के बाद, आपके समाधान ने मुझे बचा लिया :)
Masoud

3

मेरे पास एक ही समस्या है, समस्या यह थी कि समाधान पथ के नाम में रिक्त स्थान हैं और बनाम किसी कारण से पैकेज का समाधान नहीं होता है ... मेरे रिपॉजिटरी को फिर से नाम में आउट स्पेस के साथ समाधान का नाम बदलें।

उदाहरण के लिए:

/Repo/Project Name/src

होना चाहिए

/Repo/ProjectName/src

यहाँ भी, लेकिन मैं %20फ़ोल्डर नाम में था।
वोजटेक टुरीविज़

3

मेरे लिए सफाई और इमारत काम नहीं करती थी। प्रोजेक्ट को उतारने से काम नहीं चला। विज़ुअल स्टूडियो को पुनरारंभ करना या यहां तक ​​कि पीसी ने भी काम नहीं किया। यह क्या काम किया है:

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

समस्या किसी प्रोजेक्ट को इधर-उधर ले जाने से संबंधित प्रतीत होती है (उदाहरण के लिए इसे किसी फ़ोल्डर में ले जाएं), फिर एक अलग प्रोजेक्ट जो इसे संदर्भित करता है, इसका पथ गलत है और इसे खोज नहीं सकते।


मैंने अपनी परियोजनाओं की निर्देशिकाओं को बदल दिया क्योंकि सभी के पुनर्निर्माण का उपयोग करके dll की इमारत के साथ समस्या नहीं है और यह उत्तर मेरी समस्या को ठीक करता है।
अलैन एलमिया

3

मेरे पास एक ही समस्या थी, यहां तक ​​कि "पुन: निर्माण समाधान" के बाद "त्रुटि सूची" दृश्य पर कोई अन्य त्रुटि नहीं दिखाई दी। हालाँकि, "आउटपुट" दृश्य पर, मैंने उस त्रुटि को देखा जो इस मुद्दे के पीछे थी:

प्राथमिक संदर्भ "C: ... \ myproj.dll" को हल नहीं किया जा सका क्योंकि यह ".NETFramework, संस्करण = v4.6.1" ढांचे के खिलाफ बनाया गया था। यह वर्तमान में लक्षित फ्रेमवर्क ".NETFramework, संस्करण = v4.5" की तुलना में एक उच्च संस्करण है

एक बार जब मैंने इसे ठीक कर लिया, तो समस्या हल हो गई।


2

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

मेरे पास यह मुद्दा था, मैंने पहले सुझाए गए सभी उत्तरों की कोशिश की और फिर एक कूबड़ पर रूपरेखाओं की जांच की। संदर्भित परियोजनाओं में से एक 4.6.1 को लक्षित कर रहा था जब कॉलिंग परियोजना केवल 4.5.2 थी।


इधर भी ऐसा ही है।
एंथनी क्वीन

2

मेरे लिए काम कर रहे सभी डब्बे को हटाने के लिए इस कमांड को चलाएं

$ find . -iname "bin" -o -iname "obj" | xargs rm -rf

हालांकि इसकी गारंटी कोई और नहीं ले सकता है

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


2

मेरे समाधान को साफ करने से विजुअल स्टूडियो 2017 के साथ यह समस्या हुई। परियोजनाओं को उतारना / फिर से लोड करना या अधिक सफाई से कोई फर्क नहीं पड़ा। केवल एक चीज जो काम की थी वह Visual Studio को बंद और पुनः आरंभ कर रही थी।


वीएस 2019 में भी यही: बस वीएस को बंद करने और समाधान को फिर से खोलने में मदद मिली।
हिरोई

2

जांचें कि सभी परियोजनाएं भरी हुई हैं। मेरे मामले में परियोजना में से एक अनलोड किया गया था और परियोजना को फिर से लोड करने से त्रुटियां साफ हो जाती हैं।


2

मेरे मामले में, मुझे .csproj फ़ाइल खोलनी थी और हाथ से संदर्भ जोड़ना था, इस तरह (Microsoft.Extensions.Identity.Stores.dll गायब था):

<Reference Include="Microsoft.Extensions.Identity.Stores">
  <HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.identity.stores\2.0.1\lib\netstandard2.0\Microsoft.Extensions.Identity.Stores.dll</HintPath>
</Reference>

2

Visual Studio को बंद करें, समाधान की .su फ़ाइल को ढूंढें, इसे हटाएं, Visual Studio को फिर से खोलें।


2

मेरे लिए क्या काम किया:

पैकेज मैनेजर कंसोल (विजुअल स्टूडियो 2019 कम्यूनिटी):

Install-Package NuGet.CommandLine
nuget locals all -clear

समाधान का पुनर्निर्माण करें।


1

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


1

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


1

इतनी परेशानियों का सामना करने के बाद, यहाँ समाधान है जो मुझे मिला।

  1. अपना प्रोजेक्ट फ़ोल्डर खोलें।
  2. लगता है Your_Project_Name.csproj [विजुअल C # परियोजना फ़ाइल (.csproj)]
  3. उस फ़ाइल को किसी भी टेक्स्ट एडिटर में खोलें और अपनी गुम हुई फ़ाइल ItemGroup खोजें।

    <ItemGroup> <None Include="..." /> </ItemGroup>

  4. उस ItemGroup को निकालें और एक बार फिर से अपनी परियोजना और निर्माण खोलें

  5. यदि वह संदर्भ आपके लिए महत्वपूर्ण है तो एक बार फिर से जोड़ें।

1

मुझे भी यही समस्या थी और मैंने मेटाडेटा फ़ाइल से समाधान की कोशिश की। '.dll' नहीं मिला

लेकिन इनमें से किसी ने भी काम नहीं किया।

इसलिए परीक्षण और त्रुटि के बाद, मैंने इसे रीसेट करके और इस फाइल को रीसेट करने वाली परियोजना को पुनः लोड करके इसे ठीक कर दिया और समस्या को ठीक कर दिया।


1

मैंने 25 परियोजनाओं में से 10 परियोजनाओं का निर्माण व्यक्तिगत रूप से एक-एक करके निर्भरता के आधार पर किया है। फिर समाधान का निर्माण करें। यह मेरे लिए तय है


यह मेरा समाधान था
लसिथा

0

मेरी भी यही समस्या थी। मेरी समस्या टीम के किसी अन्य व्यक्ति ने एक क्लास फ़ोल्डर में स्थानांतरित कर दी थी, और परियोजना इसके लिए देख रही थी।

मेरे लिए, 44 त्रुटियां थीं; 43 .dll (एक निर्भरता के लिए खोज) में समाप्त हो गया और त्रुटि सूची में पहला .cs (वास्तविक वर्ग की खोज) के साथ समाप्त हो गया। मैंने क्लीन-बिल्ड, और क्लीन, अनलोड, रीलोड, बिल्ड की कोशिश की, लेकिन काम नहीं कर रहा। मैंने परियोजना में वर्ग का पता लगाने को समाप्त कर दिया, और बस इसे हटा दिया, क्योंकि यह अनुपलब्ध रास्ते के रूप में दिखाई दे रहा था, इसके बाद एक साफ-सुथरा निर्माण हुआ।

मेरे लिए यही चाल चली! उम्मीद है की यह मदद करेगा।


0

मेरे पास एक ही नाम के साथ एक ही प्रोजेक्ट में 2 फाइलें (और 2 कक्षाएं) थीं।


0

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


0

मेरे लिए क्या काम था:

अनइंस्टॉल करें और फिर त्रुटि वाले संदर्भित Nuget पैकेज को पुनर्स्थापित करें।


0

मेरे मामले में मैंने परीक्षण चलाया और CS0006 में त्रुटि हुई। यह पता चला कि मैं रिलीज़ मोड में परीक्षण चलाता हूं। डीबग मोड पर स्विच करने से यह त्रुटि ठीक हो गई।


0

यह समस्या तब होती है जब आपने अपने समाधान का नाम बदल दिया है और .net फ्रेमवर्क पुराना समाधान नहीं ढूंढ सकता है।

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

फ़ाइलों कि सामान्य रूप से प्रभावित होते हैं AssemblyInfo.cs, .slnएकProperties > Application > Assembly नाम और डिफ़ॉल्ट नाम स्थान। उन्हें नए नाम के साथ अपडेट करना सुनिश्चित करें।

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


0

मेरे मामले में मुद्दा यह था, मैं एक परियोजना का उल्लेख कर रहा था जहाँ मैंने सभी .csफाइलों पर टिप्पणी की थी ।

उदाहरण के लिए ProjectApp संदर्भ ProjectUtility। ProjectUtility में मेरे पास केवल 1 .csफ़ाइल थी। मैं अब इसका इस्तेमाल नहीं कर रहा था इसलिए मैंने पूरी फाइल पर टिप्पणी की। ProjectApp में मैं ProjectUtility से किसी भी कोड को कॉल नहीं कर रहा था, लेकिन मेरे पास using ProjectUtility;ProjectApp .csफ़ाइलों में से एक था । संकलक से मुझे एकमात्र त्रुटि CS0006 मिली त्रुटि थी।

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

यदि आप सोच रहे थे कि मैंने संदर्भ को हटाने के बजाय संदर्भित परियोजना से सभी कोड क्यों टिप्पणी की, मैंने ऐसा इसलिए किया क्योंकि मैं कुछ परीक्षण कर रहा था और ProjectApp.csprojफ़ाइल को संशोधित नहीं करना चाहता था ।

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