फ़ाइल या असेंबली को लोड नहीं किया जा सका 'System.Net.Http.Formatting' या इसकी एक निर्भरता। सिस्टम निर्दिष्ट राह नहीं ढूंढ पा रहा है


158

मेरे पास एक छोटा MVC ऐप है जिसे मैं अभ्यास कारणों से उपयोग करता हूं, लेकिन अब मैं हर बार एक त्रुटि का सामना कर रहा हूं जिसे मैं डीबग करने का प्रयास करता हूं:

Could not load file or assembly 'System.Net.Http.Formatting' or one of its dependencies. 
The system cannot find the path specified.

मैं गुगली कर चुका हूँ, लेकिन कोई हल नहीं ढूँढ सकता। मैं .NET 4.5 का उपयोग कर रहा हूं।

यह DLL फ़ाइल नहीं हो सकता क्योंकि मैं .Net 4.5 का उपयोग कर रहा हूं।


1
यहाँ निर्भरता देखें .. nuget.org/packages/System.Net.Http.Formatting
विशाल शर्मा

मुझे लगता है कि कोशिश की और यह काम नहीं किया था ... इसके बजाय मैं कह 'NuGetCmdletUnhandledException, NuGet.PowerShell.Commands.InstallPackageCommand' पैकेज प्रबंधक पर कोई त्रुटि मिलती है
नॉरिस

जवाबों:


185

जब भी मेरे पास एक NuGet त्रुटि होती है जैसे कि मैं आमतौर पर ये कदम उठाता हूं:

  1. विंडोज एक्सप्लोरर में संकुल फ़ोल्डर में जाएं और इसे हटा दें।
  2. ओपन दृश्य स्टूडियो और जाने के लिए उपकरण > लाइब्रेरी पैकेज प्रबंधक > पैकेज प्रबंधक सेटिंग और बाएं हाथ की ओर पैकेज प्रबंधक मद के अंतर्गत एक "साफ पैकेज कैश" बटन नहीं है। इस बटन पर क्लिक करें और सुनिश्चित करें कि "निर्माण के दौरान लापता पैकेज डाउनलोड करने की अनुमति दें" के लिए चेक बॉक्स की जाँच की गई है।
  3. घोल को साफ करें
  4. फिर समाधान एक्सप्लोरर में समाधान पर क्लिक करें और NuGet पैकेज पुनर्स्थापना को सक्षम करें
  5. समाधान का निर्माण करें
  6. विज़ुअल स्टूडियो को पुनरारंभ करें

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


EDIT >>>

दृश्य स्टूडियो 2013 और ऊपर के लिए, चरण 2) को पढ़ना चाहिए:

  1. विज़ुअल स्टूडियो खोलें और टूल > विकल्प > नुगेट पैकेज मैनेजर पर जाएं और दाहिने हाथ पर "क्लियर पैकेज कैश बटन" है। इस बटन पर क्लिक करें और सुनिश्चित करें कि "विजुअल स्टूडियो डाउनलोड करने की अनुमति के लिए NuGet को अनुमति दें" और "विजुअल स्टूडियो में निर्माण के दौरान गुम हुए पैकेजों की स्वचालित जाँच करें" चेक बॉक्स हैं।

7
यह काम किया ... हल की गई समस्या ... धन्यवाद जॉर्डन_वाटर्स ... मेरे पास वोट करने के लिए पर्याप्त प्रतिनिधि नहीं है ... अन्यथा आपकी मदद की बहुत सराहना की गई
नॉरिस

10
अच्छी सलाह, लेकिन इसने मेरी समस्या को "फ़ाइल या असेंबली लोड नहीं कर सका 'System.Net.Http.Formatting' या इसकी एक निर्भरता को ठीक नहीं किया। सिस्टम निर्दिष्ट पथ नहीं ढूँढ सकता है"। मेरे लिए मुझे Tools / NuGet Package Manager / Package Manager Console जाना था और फिर "Update-Package -ProjectName MyProject -reinstall"। सब कुछ तय!
जियोमैक्स

3
@YuraZaletskyy मुझे लगता है कि यह $ {SolutionDir} / पैकेज / में है। यानी रूट सॉल्यूशन फोल्डर।
जेकजगार्डन

1
महान सुझाव, धन्यवाद, उन्होंने वास्तव में मेरी मदद की। मुझे आशा है कि आपको कोई आपत्ति नहीं है कि मैंने विज़ुअल स्टूडियो के बाद के संस्करणों को प्रतिबिंबित करने के लिए कुछ और जानकारी जोड़ी है।
शेरिदन

1
मैंने उपरोक्त का पालन किया और फिर भी त्रुटि बनी रही - मैंने स्वयं dll संस्करण को देखा और जब मैंने अपनी web.config फ़ाइल की जाँच की तो डुप्लिकेट प्रविष्टियाँ थीं, बस अपने dll संस्करण से मेल करने के लिए एक प्रविष्टि छोड़ दें और सब कुछ काम करना चाहिए - यह मेरे लिए था
जज़्ज़ीफे

168
  • करने के लिए सभी कोड संदर्भ निकालें System.Net.*

  • पैकेज विंडो में,

    Install-Package Microsoft.AspNet.WebApi.Client

  • अपनी परियोजना को साफ और पुनर्निर्माण करें


2
मैं अभी इस समस्या में भाग गया और मैंने Microsoft.AspNet.WebApi.Client का नवीनतम NuGet पैकेज संस्करण स्थापित किया और फिर मैंने अपने संदर्भ सूची में System.Net.Http.Formatting देखा।
इवोमैक

मैंने बाकी सब कोशिश की। यह एकमात्र ऐसा है जिसने मेरे लिए काम किया।
टिमोथी कांसकी

मेरे लिए काम किया। सुनिश्चित करें कि आपने सही संस्करण स्थापित किया है।
क्रिशरजियो

1
यह समाधान के बाद मैं अपने अद्यतन काम Web.Config bindingRedirectके लिए System.Net.Http.Formattingऔर System.Web.Httpउपरोक्त आदेश द्वारा स्थापित एक नया करने के लिए ... यानी यह से चला गया <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>करने के लिए<bindingRedirect oldVersion="0.0.0.0-4.0.30319" newVersion="4.0.30319"/>
सर्ज सगन

क्या यह मामला है कि हम में से कई लोग बस Microsoft.AspNet.WebApi.Client NuGet पैकेज को याद कर रहे थे?
carlin.scott

27

मुझे एक अतिरिक्त मिला

  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.2.28.0" newVersion="2.2.28.0" />
  </dependentAssembly>

मेरे web.config में। हटा दिया कि यह काम करने के लिए। कुछ अन्य पैकेज जो मैंने स्थापित किए हैं, और फिर समस्या के कारण हटा दिए गए हैं।


आप कैसे जानते हैं कि सार्वजनिक टोकन संस्करण का क्या है? b03f5f7f11d50a3a
eran otzap

इसके पैकेज मैनेजर कंसोल कमांड द्वारा स्वचालित रूप से जोड़ा गया: Add-BindingRedirect *
साइमन ह्यूजेस

18

user3919888 ने मुझे सही दिशा में इशारा किया, लेकिन मुझे Update-Package -reinstall Microsoft.AspNet.WebApi.Clientपैकेज-मैनेजर कंसोल में चलने की आवश्यकता थी । बेसिक इंस्‍टॉल अपने आप में समस्‍या को पहचानता नहीं है लेकिन यह पहचानता है कि पैकेज पहले से इंस्‍टॉल है और इसे अधिलेखित नहीं करता है।

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


16

web.configमेरी समस्या को हल करने से निम्नलिखित पंक्तियों को हटा दें । ध्यान दें कि इस परियोजना में मैंने WebApi घटकों का उपयोग नहीं किया है। तो दूसरों के लिए यह समाधान उम्मीद के मुताबिक काम नहीं कर सकता है।

  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
  </dependentAssembly>

आप कैसे जानते हैं कि सार्वजनिक टोकन संस्करण का क्या है?
एरन ओत्ज़ैप

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

मज़ेदार होने के लिए मैंने इन पंक्तियों को जोड़ा और इससे मदद मिली।
Krzysztof मेडज

मेरे लिए भी यही समस्या है।
विशाल

इससे मेरी समस्या भी हल हो गई। मैंने एक पुरानी वेब साइट परियोजना को वेब अनुप्रयोग में बदल दिया था। Web.config फ़ाइल संस्करण 5.2.7 का संदर्भ दे रही थी, जबकि स्थापित NuGet पैकेज 5.2.3 था। Web.config से इसे हटाने से त्रुटि ठीक हो गई।
सीजर डैनियल

9

.NET फ्रेमवर्क परियोजनाओं के साथ संयोजन में .NET मानक परियोजना का उपयोग करने वालों के लिए :

.NET मानक तरीके से, .NET मानक प्रोजेक्ट में शामिल किए गए पैकेजों को सही ढंग से अन्य .NET कोर और .NET मानक परियोजनाओं में उपयोग किया जाएगा।

.NET फ्रेमवर्क तरीका Im, यदि आप एक .NET फ्रेमवर्क (MVC) प्रोजेक्ट से .NET मानक प्रोजेक्ट की बात कर रहे हैं, तो आपको उसी नगेट पैकेज को मैन्युअल रूप से डाउनलोड और इंस्टॉल करना होगा।

तो मेरे प्रश्न का उत्तर यह था कि मुझे Microsoft.AspNet.WebApi.Clientवेब प्रोजेक्ट (.NET फ्रेमवर्क) को डाउनलोड और इंस्टॉल करना था जो कि .NET मानक परियोजना का उपयोग कर रहा है, जहां Microsoft.AspNet.WebApi.Clientइसकी आवश्यकता है। वास्तव में, मैंने पहले से ही इसे स्थापित किया था लेकिन एक संस्करण अंतर था।

मैं सिर्फ दूसरों के लिए इस उत्तर को देखने के लिए जोड़ता हूं, यह सीधे ओपी के सवाल का जवाब नहीं दे सकता है लेकिन इसने मुझे शीर्ष-मतदान उत्तरों को करने के बजाय पहले जाँच करके समय बचाया।


1
मैं .NET कोर का उपयोग कर रहा हूं और gingter.org/2018/07/26/… पर HttpClient का मजाक बनाने के लिए एक मार्गदर्शिका मिली । उस गाइड के बाद मुझे ओपी के प्रश्न में वर्णित समस्या दी गई। और आपने समाधान जारी कर दिया मुद्दा :)
थोरिल वोरगे जुले

इसी से मेरा काम बना है। सिफारिश की दृष्टिकोण की कोशिश की, को दूर करने और सभी पैकेज को बहाल करने, लेकिन अंत में मैं Microsoft.AspNet.WebApi.Client सुनिश्चित करने के स्थापित करने के लिए Nuget का इस्तेमाल किया था यह है संस्करण मैं की जरूरत है और उसके बाद सब अच्छा था,
वें टोडोरोव

महान जवाब - मुझे लगता है कि मैं सब कुछ वापस फ्रेमवर्क में स्थानांतरित करने की आवश्यकता शुरू कर रहा था!
d219

6
  1. करने के लिए सभी कोड संदर्भ निकालें System.Net.*
  2. स्थापना रद्द करें: पैकेज Microsoft.AspNet.WebApiऔर उसकी निर्भरताएँ।
  3. सभी को पुनर्स्थापित करें: पैकेज Microsoft.AspNet.WebApiऔर उसकी निर्भरताएँ।
  4. अपनी परियोजना को साफ और पुनर्निर्माण करें

धन्यवाद! आप ने 2 दिन की बेताब कोशिशों के बाद मुझे बचा लिया। इसने मुझे लगभग पागल कर दिया।
मारेक डोरडा

5

जैसा कि मूल रूप से GeoMac द्वारा एक टिप्पणी में सुझाव दिया गया था और NuGet के डॉक्स पर प्रलेखित किया गया था, जब निम्नलिखित में से किसी ने भी मेरे लिए काम नहीं किया:

उपकरण / NuGet पैकेज मैनेजर / पैकेज मैनेजर कंसोल

Update-Package -ProjectName MyProjectName -reinstall

मेरे पास विजुअल स्टूडियो 2015 है। मुझे यही करना था, इसे तुरंत तय किया।
डेमियन सी

3

मेरे मामले में उपरोक्त समाधानों में से किसी ने भी काम नहीं किया। मैंने संदर्भ पर राइट क्लिक करके हल किया

System.Net.Http.Formatting

विजुअल स्टूडियो से और प्रॉपर्टी कॉपी लोकल को सही पर सेट करना

मुझे उम्मीद है कि यह किसी भी तरह से उपयोगी है।


2
मैंने ऐसा किया और यह अभी भी होता है
ओटजैप को मिटा दें

2

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


1
यह सब मेरे लिए भी लिया गया था
स्टीव वर्म्यूलेन

1

मेरे लिए यह जितना सरल था

  1. Microsoft.AspNet.WebApi.Clientविंडोज एक्सप्लोरर में संकुल फ़ोल्डर से हटाएं
  2. उपकरण खोलें> NuGet पैकेज प्रबंधक> पैकेज प्रबंधक कंसोल
  3. "पुनर्स्थापना" बटन पर क्लिक करें


1

मैं उसी समस्या का सामना कर रहा था क्योंकि

System.Net.Http.Formatting

webconfig के अंदर लिखा गया संस्करण 5.0.3 था, लेकिन बिन फ़ोल्डर के अंदर लाइब्रेरी System.Net.Http.Formatting dll 4.0.2 था

इसलिए मैंने बस बिन के अंदर दिए गए समान को बदल दिया

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें

बस इस स्वच्छ परियोजना और निर्माण करते हैं


0

संभवतः आपको गुण संवाद पर "स्थानीय प्रतिलिपि बनाएँ" सही के रूप में लायब्रेरी संदर्भ सेट करने की आवश्यकता है। दृश्य स्टूडियो पर "संदर्भ" पर क्लिक करें फिर लापता संदर्भ पर राइट-क्लिक करें, संदर्भ मेनू क्लिक गुणों से, आपको स्थानीय सेटिंग की प्रतिलिपि देखनी चाहिए।


0

मेरे लिए WebApi.config में कुछ नीचे की पंक्ति जोड़ने के लिए काम करता है क्योंकि नए नगेट पैकेज को अपडेट करने के बाद काम नहीं करता है

var setting = config.Formatters.JsonFormatter.SerializerSettings;
setting.ContractResolver = new CamelCasePropertyNamesContractResolver();
setting.Formatting = Formatting.Indented;

नाम स्थान जोड़ना न भूलें:

using Newtonsoft.Json.Serialization; 
using Newtonsoft.Json;

कृपया समाधान फ़ाइल पर राइट क्लिक करके और फिर सामान्य गुणों के तहत प्रोजेक्ट निर्भरता की जांच करना सुनिश्चित करें-> प्रोजेक्ट निर्भरता उस प्रोजेक्ट की जांच करें जहां त्रुटि डाली गई है या प्रोजेक्ट नाम की जांच करें जिस पर समाधान निर्भर है
vishy

0

मैंने इस समस्या को हल करने के लिए क्या किया है

  1. NuGet पैकेज मैनेजर पर जाएं।

  2. अपडेट का चयन करें (बाएं पैनल से)

  3. WebApi घटकों को अद्यतन करें

  4. उसके बाद, परियोजना त्रुटियों के बिना चली।


0

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


0

मुझे वीएस 2019 में एएसपी.नेट प्रोजेक्ट के साथ समस्या थी।

एक अन्य लक्षण यह था कि कुछ संदर्भ (System.Web.Http) को परियोजना संदर्भ सूची (समाधान एक्सप्लोरर) में दोषपूर्ण के रूप में चिह्नित किया गया था

मेरा समाधान:

  1. प्रोजेक्ट में दोषपूर्ण संदर्भ हटाएं -> संदर्भ (राइट क्लिक, ...)
  2. बिल्ड
  3. बिल्ड त्रुटियों पर नेविगेट करें "प्रकार या नाम स्थान का नाम [...] नहीं मिल सका" या समान
  4. "संभावित सुधार दिखाएं" -> पैकेज स्थापित करें का उपयोग करें

कारण:

Csproj फ़ाइल में अंतर को देखकर मैं परेशानी का कारण देख सकता था कोई व्यक्ति Windows प्रोग्राम फ़ाइल फ़ोल्डर में DLL को संदर्भित करने में कामयाब रहा!

<Reference Include="System.Web.Http">
  <HintPath>..\..\..\..\..\..\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Microsoft.AspNet.WebApi.Core.4.0.30506.0\lib\net40\System.Web.Http.dll</HintPath>
</Reference>
<Reference Include="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\..\..\..\..\..\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Microsoft.AspNet.Mvc.4.0.30506.0\lib\net40\System.Web.Mvc.dll</HintPath>
</Reference>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.