फ़ाइल या असेंबली को लोड नहीं किया जा सका


233

मुझे एरर मिल रहा है

System.IO.FileLoadException: फाइल या असेंबली को लोड नहीं कर सका 'Newtonsoft.Json, Version = 4.5.0.0, संस्कृति = तटस्थ, PublicKeyToken = 30ad4fe6b2a6aeed' या इसकी एक निर्भरता। स्थित असेंबली की प्रकट परिभाषा असेंबली संदर्भ से मेल नहीं खाती है। (HRESULT से अपवाद: 0x80131040)

मेरे CI बिल्ड के लिए

समाधान जो मैंने कोशिश की

<dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed"
        culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>

यह भी काम नहीं आया


त्रुटि का मतलब है। .NET Json.NET लाइब्रेरी को नहीं खोज सका । क्या आपने इसे स्थापित किया है?
टाइपिया

22
सटीक एक ही प्रोबल्म - मुझे पागल ड्राइविंग। मुझे पता है अगर आप एक समाधान मिल जाए
डीन चाक

वास्तव में, मेरे लिए जो आपने प्रयास किया उसे जोड़ने से समस्या हल हो गई।
एच। क्लेक्स

संस्करणों को अलग न करने देने के लिए NuGet पैकेज मैनेजर में समेकित विकल्प का उपयोग करें।
नीको

यह केवल एक चीज है जो मेरे लिए काम करती है: github.com/Redth/PushSharp/issues/361#issuecomment-181387928
19

जवाबों:


237

पैकेज मैनेजर कंसोल में निष्पादित Update-Package –reinstall Newtonsoft.Json:।

अपडेट करें

मैंने मूल रूप से इसे एक टिप्पणी के रूप में पोस्ट किया था, लेकिन @ ओवेनब्लैकर ने सुझाव दिया कि मैं इसे यहां डालूंगा:

यदि ऐसा करने के बाद भी आपको कोई त्रुटि मिलती है, तो आखिरकार मेरे लिए क्या काम किया है मैंने <dependentAssembly>अपनी .configफ़ाइल से Json.Net का अनुभाग हटा दिया है । अगर यह वहां नहीं है तो इसे फिर से इंस्टॉल करें और इसे हटाने की जरूरत है। जब तक पैकेज में एक सामान्य समाधान नहीं होगा, मुझे डर है कि यह मैनुअल कदम एक जरूरी है।

नोट: कृपया इसे करने से पहले नीचे दिए गए टिप्पणियों को पढ़ें।

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


7
इसे पढ़ने वाले सभी के लिए: मैंने ऐसा किया है और अभी भी त्रुटि हुई है। फिर मैंने इसे किसी तरह हल किया: आश्चर्यजनक रूप से, मुझे अपनी फ़ाइल से Json.Net का अनुभाग हटाना पड़ा । अगर यह वहां नहीं है तो इसे फिर से इंस्टॉल करें और इसे हटाने की जरूरत है। जब तक पैकेज में एक सामान्य समाधान नहीं होगा, मुझे डर है कि यह मैनुअल कदम एक जरूरी है। <dependentAssembly>.config
ओफ़र ज़ेलिग

@ ओफ़रजेलिग आपको एक अलग उत्तर के रूप में पोस्ट करना चाहिए, ताकि यह अपवोट्स प्राप्त कर सके (और, अधिक महत्वपूर्ण रूप से, ध्यान बढ़ाया)। कम से कम नहीं क्योंकि यह मेरे लिए भी काम करता है :)
ओवेन ब्लैकर

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

43
BE बारे में पता है कि आदेश जवाब में पोस्ट में पैकेज को पुनर्स्थापित होगा हर अपने समाधान में परियोजना। इसलिए यदि आप कई प्रोजेक्ट्स में Newtonsoft.Json पैकेज का उपयोग करते हैं और शायद विभिन्न संस्करणों का उपयोग करते हैं, तो बस ऊपर दिए गए आदेश को निष्पादित करने के अवांछित परिणाम हो सकते हैं।
रेने

हल किया! मेरे लिए, मैंने एक परियोजना में v6 स्थापित किया था, पैकेज प्रबंधक से पुन: स्थापित करके इसे v7 तक लाया गया।
jv-dev

123

Newtonsoft.Json v4.5 संस्करण के साथ समस्या वाले सभी लोगों को web.config या app.config का उपयोग करने की कोशिश करें:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <dependentAssembly>
           <assemblyIdentity name="Newtonsoft.Json"
               publicKeyToken="30AD4FE6B2A6AEED" culture="neutral"/>
           <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/>
       </dependentAssembly>
    </assemblyBinding>
</runtime>

महत्वपूर्ण : जांचें कि configurationआपकी कॉन्फ़िग फ़ाइल के टैग का कोई नामस्थान विशेषता नहीं है (जैसा कि https://stackoverflow.com/a/12011221/150370 में सुझाया गया है )। अन्यथा, assemblyBindingटैग को अनदेखा कर दिया जाएगा।


3
मेरे लिए, सफाई के बाद मैन्युअल रूप से बिन फ़ोल्डर की सामग्री को हटाना (जो इसे खाली नहीं करता है) मैंने यह उत्तर लागू करने के बाद चाल चली।
मिकाइल मेयर

इसके लिए एक टन धन्यवाद! :)
कामरान के।

बहुत अच्छा काम करता है! 7/4/15 के अनुसार Newtonsoft.Json का वर्तमान संस्करण 7.0.0 है इसलिए newVersion="6.0.0.0"इसे बदल दिया जाना चाहिए newVersion="7.0.0.0"या जो भी संस्करण आप उपयोग कर रहे हैं
मूसा मचुआ

3
नामस्थान पर वह नोट ... मैं तुम्हें गले लगा सकता था। मैं इस पर घंटों जलता रहा, न जाने के कारण बाध्यकारी पुनर्निर्देशन को अनदेखा किया जा रहा था।
ब्रायन

1
नाम स्थान के बारे में नोट इतना महत्वपूर्ण है कि यह अपने आप ही एक उत्तर हो सकता है। आपका बहुत बहुत धन्यवाद।
बीवॉ नोव 27'19

42

मुख्य बिंदु आपकी कॉन्फ़िग फ़ाइल में राइट वर्जन संदर्भित कर रहा है।

कदम;

1- प्रोजेक्ट रेफरेंस प्रॉपर्टी में आपके Newtonsoft.Json.dll के संस्करण को देखें कि आपके पैकेज फ़ोल्डर में कभी संस्करण क्या है (उदाहरण के लिए मेरा 7.0.1 है और संदर्भ संस्करण 7.0.0.0 है)

2- इस परियोजना को अपवाद में आपसे क्या उम्मीद है (मेरा 6.0.0.0 है)

3- अपनी कॉन्फ़िग फ़ाइल में आश्रित असेंबली को जोड़ें जैसा कि यह होना चाहिए ।।

  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json"  publicKeyToken="30AD4FE6B2A6AEED" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="7.0.0.0"/>
  </dependentAssembly>

क्षमा करें, आपकी बात को केवल एक वोट दे सकते हैं (उदाहरण के लिए मेरा 7.0.1 है और संदर्भ संस्करण 7.0.0.0 है) ने बहुत बड़ा अंतर डाला। मैंने और दिया होगा ..... धन्यवाद :)
ज़कर डे

इसने मेरे लिए काम किया। मैंने संस्करण को 7 में अपडेट किया, लेकिन यह वास्तव में संस्करण 8 चल रहा था, इसलिए मैंने अभी नया बदलाव को 8.0 में बदल दिया, धन्यवाद!
कीथ

भले ही 8.0.3 स्थापित हो (जैसे कि इसे नगेट पैकेज मैनेजर में कहते हैं), .dll संदर्भ के तहत अभी भी 8.0.0 है। इसलिए मैं अपने web.config में 8.0.0.0 में बदल गया। व्यर्थ यह कल कैसे काम किया जब मैंने सब कुछ प्रकाशित किया और आज सुबह यह काम नहीं करता है।
CularBytes

24

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

uninstall-package newtonsoft.json -force

install-package newtonsoft.json -version "5.0.6"

-forceपहले आदेश में विकल्प की स्थापना रद्द करें मजबूर करने के लिए आवश्यक है। अन्य असेंबली के साथ निर्भरता इसके बिना अनइंस्टॉल को रोकती है।


एक जादू की तरह काम किया। मेरे MVC 4 प्रोजेक्ट में त्रुटि थी। लगभग मूल धारावाहिक में बदल गया।
कीस सी। बकर

धन्यवाद, मुझे सिर्फ "5.0.6" -परिवर्तन को बदलने की आवश्यकता है: संस्थापन-पैकेज newtonsoft.json -pre
thiago.adriano26

22

मैंने इस समस्या को अपने .config फ़ाइल में पुनर्निर्देशित करते हुए समस्या को ठीक किया:

<runtime>
    . . . 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed"
                culture="neutral" />
            <bindingRedirect oldVersion="4.5.0.0" newVersion="6.0.0.0" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>

त्रुटि संदेश 4.5.0.0 संस्करण नहीं ढूंढने के बारे में शिकायत करता है, Newtonsoft.Json का वर्तमान संस्करण 6.0.0.0 है, इसलिए रीडायरेक्ट 4.5 से 6.0 तक जाना चाहिए, इसके विपरीत नहीं


हाँ इससे मेरी समस्या हल हो गई। JSON.NET कारणों की इतनी अजीब समस्याओं का कारण बनता है .. लेकिन एक बार यह एक सपना मशीन चला जाता है। धन्यवाद +1
पाइत्र कुल

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

21

मुझे लगता है कि आप गलत लक्ष्य की ओर इशारा कर रहे हैं, इसे 6.0 के बजाय 4.5 में बदल दें

<dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed"
        culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="4.5.0.0" />
</dependentAssembly>

यह काम करना चाहिए।


1
Umbraco 7 के लिए 4.5.0.0 की आवश्यकता थी, इसलिए इसने इसे ऊपर लाने और चलाने में मदद की
MagicalArmchair

19

मैंने इस निराशाजनक मुद्दे को सुलझाने के लिए कुछ दिन बिताए हैं। मैं वेब पर पाया जा सकता है कि सब कुछ बहुत कोशिश की है। अंत में मैंने पाया कि एक ही समाधान में अलग-अलग लक्ष्य .Net परियोजना संस्करणों (4.5 और 4.5.1) के कारण यह त्रुटि हो सकती है (जैसे कि मेरे मामले में)। मेरे लिए तय किए गए कदम

  1. अपने समाधान में हर परियोजना के .Net संस्करण की दोबारा जाँच करें। बस प्रोजेक्ट पर राइट क्लिक करें और जाएं Properties

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

  1. यदि संभव हो तो सभी परियोजनाओं के लिए एक ही .Net संस्करण निर्धारित करें । यदि कम से कम स्टार्टअप प्रोजेक्ट एक को बदलने की कोशिश न करें (मेरे लिए यह समस्या पैदा करने वाला था)।

  2. Newtonsoft.Jsonसमाधान से सभी पैक निकालें ।

    uninstall-package newtonsoft.json -force

  3. Newtonsoft.Jsonसभी packages.configफ़ाइलों में सभी संस्करणों को अपडेट करें, जैसे कि

    <package id="Newtonsoft.Json" version="7.0.1" targetFramework="net451" />

  4. Newtonsoft.Json"पैकेज प्रबंधक कंसोल" से पुनर्स्थापित करें :

    install-package newtonsoft.json

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

(वैकल्पिक) 7. यदि आपने स्टार्टअप परियोजना को बदल दिया है, तो उसे फिर से लौटाएं


12
uninstall-package newtonsoft.json -force
install-package newtonsoft.json

क्या मेरे लिए चाल चली :)


1
इसने मेरे लिए भी चाल चली। यह स्वचालित रूप से webconfig फ़ाइल को सही संस्करण में अद्यतन करता है।
शाकिर

मुझे भी, यह वास्तव में मदद की।
माइक माल्टर

11

यदि आप एक ही समाधान में एक से अधिक प्रोजेक्ट का उपयोग कर रहे हैं और एक चेक की लाइब्रेरी में सभी प्रोजेक्ट्स में न्यूटनसॉफ्ट का एक ही संस्करण है। Json


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

10

प्रोजेक्ट संदर्भ से Newtonsoft.Json असेंबली निकालें और इसे फिर से जोड़ें। आपने संभवतः दुर्घटना से डिल को हटा दिया है या प्रतिस्थापित कर दिया है।


यह एक Xamarin Forms iOS प्रोजेक्ट के खिलाफ काम करता है जहाँ मैंने NuGet पैकेज को गिरा दिया और इसे फिर से जोड़ा। धन्यवाद।
सीनेटर

9

मैं एक WebApi REST सेवा क्लाइंट लिख रहा था, इसलिए मेरे लिए यह त्रुटि Add Reference के माध्यम से मैन्युअल रूप से References System.Net.Httpऔर System.Net.Http.Formattingविधानसभाओं को जोड़ने के कारण हुई , जब मुझे NuGet केMicrosoft.AspNet.WebApi.Client माध्यम से पैकेज को जोड़ना चाहिए था । एक अन्य प्रश्न का यह उत्तर भी देखें ।


8

आपके समाधान में JSON.NET लाइब्रेरी के 2 अलग-अलग संस्करण हैं। इसे हल करने के लिए आपको उन्हें नवीनतम संस्करण में अपग्रेड करना चाहिए। इन कदमों का अनुसरण करें:

1-ओपन सॉल्यूशन एक्सप्लोरर 2-राइट ऑन सॉल्यूशन नाम 3-सॉल्यूशन के लिए नगेट पैकेज प्रबंधित करें 4-मेन्यू से अपडेट्स का चयन करें 5-अपडेट JSON.NET पैकेज

इससे आपकी समस्या दूर हो जाएगी।

लिंक: फ़ाइल या असेंबली को लोड नहीं कर सका


इस समस्या को ठीक करने का सबसे आसान और सुरक्षित तरीका। धन्यवाद @ मोहम्मद
deanwilliammills

7

CI मशीन में सही संस्करण तैनात करें

यह आपको बता रहा है कि असेंबली लोडर को असेंबली का एक अलग संस्करण मिला Newtonsoft.Json, जो आपके प्रोजेक्ट में आपके द्वारा बनाए गए संदर्भ से मेल नहीं खाता है। असेंबली को सही तरीके से लोड करने के लिए, आपको या तो असेंबली साइड को अपने संकलित कोड के साथ तैनात करना होगा, या डेस्टिनेशन मशीन (यानी GAC में असेंबली का सही वर्जन) इंस्टॉल करना होगा।

वैकल्पिक: सुनिश्चित करें कि कॉन्फ़िगरेशन सही फ़ाइल में है

यदि आप वर्तमान समाधान रखना चाहते हैं, और एक असेंबली को एक अलग संस्करण के साथ लोड करना चाहते हैं, तो सुनिश्चित करें कि आपके द्वारा पोस्ट किया गया कॉन्फ़िगरेशन सही .configफ़ाइल में है। याद रखें कि कोई भी नहीं है xpto.dll.config, एक एप्लिकेशन द्वारा लोड किया गया DLL हमेशा रनिंग एप्लिकेशन की कॉन्फ़िग फ़ाइल का उपयोग करता है।


6

आम तौर पर बाध्यकारी पुनर्निर्देशन को जोड़ने से इस समस्या को हल करना चाहिए, लेकिन यह मेरे लिए काम नहीं कर रहा था। दीवार के खिलाफ मेरे सिर को पीटने के कुछ घंटों के बाद, मुझे एहसास हुआ कि एक xmlns विशेषता थी जो मेरी वेब में समस्याएं पैदा कर रही थी ।config। Web.config में कॉन्फ़िगरेशन नोड से xmlns विशेषता को हटाने के बाद, बाध्यकारी पुनर्निर्देशन अपेक्षित रूप से काम किया।

http://www.davepaquette.com/archive/2014/10/02/could-not-load-file-or-assembly-newtonsoft-json-version4-5-0-0.aspx


5
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json"
        publicKeyToken="30AD4FE6B2A6AEED" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="7.0.0.0"/>
  </dependentAssembly>
</assemblyBinding>

मेरे लिए काम करता है .... बस उस संस्करण को डालें जिसे आप newVersion में उपयोग कर रहे हैं (newVersion = "7.0.0.0")


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

5

समाधान बंद करें।

पाठ संपादक के साथ खोलें packages.configऔर *.csprojकिसी भी पंक्ति को हटाएं Newtonsoft.Json

उदाहरण के लिए:
<Reference Include="Newtonsoft.Json,Version=9.0.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net40\Newtonsoft.Json.dll</HintPath> <Private>True</Private> </Reference>

या <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net40" />

फिर से समाधान खोलें और Newtonsoft.Json द्वारा फिर से स्थापित करें Install-Package Newtonsoft.Json

यह मेरे लिए काम करता है।


यह कुछ समय के लिए काम करता है लेकिन आगामी बिल्ड में यह समस्या फिर से फिर से आ गई है
हीमांशु भल्ला

कोई समस्या नहीं अगर यह haha ​​अद्यतन नहीं है। कचरा परियोजना बनाएँ और Newtonsoft.Json.dll स्थापित करें, इसे कॉपी करें (फ़ाइल dll) और अपने प्रोजेक्ट संदर्भ में जोड़ें।
Tr

4

हमारे पास ठीक वही मुद्दा था जिसका आपने उल्लेख किया था। हम CI के माध्यम से परीक्षण चलाने के लिए nunit का उपयोग कर रहे हैं, और हमारे पास nunit में परीक्षण नामक एक फाइल चल रही है ।unit, जो परीक्षण dll जुड़नार की एक सूची को चलाने के लिए वर्णन करता है।

प्रत्येक टेस्ट फिक्सेटर की अपनी कॉन्फिग फाइल होती थी, लेकिन जब "टेस्ट.नूनिट" फाइल के जरिए बाइंडिंग रीडायरेक्ट को नजरअंदाज किया जाता है। समाधान एक नई कॉन्फ़िगरेशन फ़ाइल, "test.config" के साथ बाइंडिंग रीडायरेक्ट को जोड़ने के लिए था जो "test.nunit" फ़ाइल के पास था।


क्या आप विस्तार से समझा सकते हैं?
KirstieBallance

4

मुझे उसी प्रकार की समस्या मिली है। और मैंने इसे केवल निम्न कार्य करते हुए हल किया: टूल्स > NuGet पैकेज मैनेजर पर जाएं और पैकेज मैनेजर कंसोल चुनें । अंत में, निम्नलिखित दो कमांड निष्पादित करें :)

  1. स्थापना-पैकेज newtonsoft.json -force
  2. स्थापित-पैकेज newtonsoft.json

4

आपको सर्वर में web.config फ़ाइल को अपडेट करना चाहिए। जब nuget NewtonSoft इनस्टॉल करें तो इस कोड सहित फाइल को अपडेट करें

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
  </dependentAssembly>
</assemblyBinding>


मेरे मामले में जो वास्तव में मेरा समाधान था, app.config में डाल दिया। "असेंबली संस्करणों को एप्लिकेशन, प्रकाशक नीति या मशीन कॉन्फ़िगरेशन फ़ाइलों में पुनर्निर्देशित किया जा सकता है।"
6

4

बस Newtonsoft.Json Newtonsoft गुणों के संस्करण की जाँच करें

फिर आपको उस संस्करण को अपने वेब कॉन्फ़िगरेशन (मेरे मामले में 8.0.0.0) वेब कॉन्फ़िगरेशन में जोड़ने की आवश्यकता है


3

मैंने .net 4.5 के लिए एक न्यूटन सॉफ्ट की .dll फ़ाइल को जोड़ने की गलती की।

मेरा मुख्य प्रोजेक्ट 4.5 था , लेकिन जब मैंने अपने समाधान में एक अतिरिक्त प्रोजेक्ट जोड़ा, तो यह अजीब रूप से इसे एक .net 2.0 प्रोजेक्ट के रूप में जोड़ा गया ... और जब मैंने इसके साथ न्यूटनसॉफ्ट के 4.5 dll का उपयोग करने का प्रयास किया, तो मुझे यह "Newtonsoft.Json cann मिला।" "t be found" error।

समाधान (बेशक) इस नई परियोजना को .Net 2.0 से 4.5 में बदलना था।


3

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


3

मुझे संस्करण 7.0.0.0 के साथ ठीक यही समस्या थी, और मेरी समस्या का कारण Microsoft था। Rest.ClientRuntime जो किसी भी तरह न्यूटनटाउन के गलत संस्करण (6.0.0.0) का उल्लेख कर रहा था। Json, सोने की डली में सही निर्भरता प्रबंधन के बावजूद ( newtonsoft.json (7.0.0.0) का सही संस्करण स्थापित किया गया था।

मैंने इसे विन्यास फाइल में 6.0.0.0 से 7.0.0.0 (कदीर कैन से) के ऊपर पुनर्निर्देशन को लागू करके हल किया:

<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="7.0.0.0" />

----> कुछ दिनों के बाद बिना कुछ बदले वह फिर से उसी त्रुटि के साथ सामने आया। मैं संस्करण 6.0.0.0 n स्थापित इसे 7.0.0.0 करने के लिए अद्यतन यह अब ठीक काम करता है।


मेरे लिए काम किया। स्थापित संस्करण Newtonsoft Json 7.0.1 (बीटा), लेकिन उत्पन्न कॉन्फ़िगरेशन 6.0.0.0 की ओर इशारा कर रहा था जो सही नहीं था। धन्यवाद!
धानुका Dhan।

2

मेरे मामले में, विधानसभा को डाउनलोड करने और परियोजना के संदर्भ को जोड़ने के बाद, मैंने परियोजना के संदर्भ को जोड़ने से पहले DLL को 'अनब्लॉक' करके इसे हल किया।

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


2

ऊपर से कुछ भी मेरी मदद नहीं की, लेकिन वास्तव में यह क्या तय है यह निम्नलिखित है:

  1. App.config में सभी निर्भरता बाइंडिंग निकालें (समाधान में सभी app.config फ़ाइलों से)
  2. "पैकेज प्रबंधक कंसोल" से निम्न आदेश निष्पादित करें

जाओ-प्रोजेक्ट -सभी | ऐड-bindingRedirect

  1. फिर से बनाना

संदर्भ: http://blog.myget.org/post/2014/11/27/Could-not-load-file-or-assembly-NuGet-Assembly-Redirects.aspx


2

अपनी परियोजना का चयन करें Nuget संकुल प्रबंधित करें पर क्लिक करें, खोज बॉक्स में newtonsoft टाइप करें और नवीनतम संस्करण स्थापित करें। फिर अपना ऐप चलाएं


2

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

मैं अंत में app परीक्षण इकाई में नीचे कोड स्निपेट जोड़कर इसे हल किया। परियोजना परीक्षण परियोजना:

<dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30AD4FE6B2A6AEED" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>

<dependAssembly> <असेंबलीडेंटिटी नाम = "Newtonsoft.Json" publicKeyToken = "30AD4FE6B2A6AEED" संस्कृति = "तटस्थ" /> <बाइंडिंग अप्रत्यक्ष पुराने रूपांतरण = "0.0.0.0-6.0.0.0" newVersion = "6.0.0.0" /> </ निर्भरता।
मुकुलशर्मा ११४६

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

2

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

सुनिश्चित करें कि आपके पास प्रत्येक तत्व के तहत केवल एक तत्व है।

कुछ उदाहरणों में, वीएस इसे उत्पन्न करता है:

  <dependentAssembly>
    <assemblyIdentity ...
    <assemblyIdentity ...
  </dependentAssembly>

के बजाय

  <dependentAssembly>
    <assemblyIdentity ...
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity ...
  </dependentAssembly>

मुझे यह महसूस करने में बहुत समय लगा कि यह समस्या थी!


2

नीचे अनुभाग अपने web.config में जोड़ें

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <dependentAssembly>
           <assemblyIdentity name="Newtonsoft.Json"
               publicKeyToken="30AD4FE6B2A6AEED" culture="neutral"/>
           <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/>
       </dependentAssembly>
    </assemblyBinding>
</runtime>

2

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

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