फ़ाइल या असेंबली को 'Newtonsoft.Json' या उसकी किसी एक निर्भरता को लोड नहीं किया जा सका। घोषणापत्र की परिभाषा विधानसभा संदर्भ से मेल नहीं खाती


216

खोज के बाद मैंने जो चीज़ें आज़माई हैं:

  1. Web.Config में पुराने संस्करण पर एक बंधन लगाएं:

    <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.1.0" />
    </dependentAssembly>
    
  2. यह सुनिश्चित करने के लिए मेरी .csproj फ़ाइल को संपादित करें कि केवल एक न्यूटनटाउन संदर्भ हो

    <Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
       <HintPath>..\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
       <SpecificVersion>False</SpecificVersion>
       <Private>True</Private>
    </Reference>
    
  3. हर Newtonsoft.Json.dll के लिए मेरा कंप्यूटर खोजें और हर गैर 6.0.1 संस्करण को हटाएं और मेरे अस्थायी फ़ोल्डर की सामग्री को हटा दें

  4. Nuget प्रबंधक कंसोल में पैकेज को सुधारें / पुनर्स्थापित करें

यह निर्माण पर सफल होता है, लेकिन साइट पर जाने पर त्रुटि मिलती है।

संपादित करें

ठीक है, तो मैंने हर नौगट पैकेज की तरह पुन: स्थापित करने की कोशिश की, और यह newtonsoft.json.dll के 4.5 संस्करण को वापस जोड़ दिया है, लेकिन मुझे वही त्रुटि मिल रही है। मेरी परियोजना का लक्ष्य freamework .NET 4.5.1 है और यहाँ स्टैक ट्रेस है जो मुझे अभी मिल रहा है:

/ 'अनुप्रयोग में सर्वर त्रुटि

फ़ाइल या असेंबली Newtonsoft.Jsonया उसकी किसी एक निर्भरता को लोड नहीं किया जा सका । स्थित असेंबली की प्रकट परिभाषा असेंबली संदर्भ से मेल नहीं खाती है। (HRESULT से अपवाद: 0x80131040)

विवरण: वर्तमान वेब अनुरोध के निष्पादन के दौरान एक अनियंत्रित अपवाद हुआ। कृपया त्रुटि के बारे में अधिक जानकारी के लिए स्टैक ट्रेस की समीक्षा करें और यह कोड में कहां उत्पन्न हुआ।

अपवाद विवरण:: System.IO.FileLoadExceptionफ़ाइल या असेंबली Newtonsoft.Jsonया उसकी किसी एक निर्भरता को लोड नहीं किया जा सका । स्थित असेंबली की प्रकट परिभाषा असेंबली संदर्भ से मेल नहीं खाती है। (HRESULT से अपवाद: 0x80131040)

स्रोत त्रुटि:

वर्तमान वेब अनुरोध के निष्पादन के दौरान एक अखंड अपवाद उत्पन्न हुआ था। नीचे दिए गए स्टैक ट्रेस का उपयोग करके अपवाद की उत्पत्ति और स्थान के बारे में जानकारी की पहचान की जा सकती है।

असेंबली लोड ट्रेस: ​​असेंबली लोड Newtonsoft.Jsonनहीं किया जा सका, यह निर्धारित करने के लिए निम्न जानकारी मददगार हो सकती है।

=== Pre-bind state information ===
LOG: DisplayName = Newtonsoft.Json
(Partial)
WRN: Partial binding information was supplied for an assembly:
WRN: Assembly Name: Newtonsoft.Json | Domain ID: 2
WRN: A partial bind occurs when only part of the assembly display name is provided.
WRN: This might result in the binder loading an incorrect assembly.
WRN: It is recommended to provide a fully specified textual identity for the assembly,
WRN: that consists of the simple name, version, culture, and public key token.
WRN: See whitepaper http://go.microsoft.com/fwlink/?LinkId=109270 for more information and common solutions to this issue.
LOG: Appbase = file:///c:/users/user/documents/visual studio 2013/Projects/foo/bar/
LOG: Initial PrivatePath = c:\users\user\documents\visual studio 2013\Projects\foo\bar\bin
Calling assembly : (Unknown).
 ===
LOG: This bind starts in default load context.
LOG: Using application configuration file: c:\users\user\documents\visual studio 2013\Projects\foo\bar\web.config
LOG: Using host configuration file: C:\Users\user\Documents\IISExpress\config\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Users/user/AppData/Local/Temp/1/Temporary ASP.NET Files/root/48686d37/9d7a6572/Newtonsoft.Json.DLL.
LOG: Attempting download of new URL file:///C:/Users/user/AppData/Local/Temp/1/Temporary ASP.NET Files/root/48686d37/9d7a6572/Newtonsoft.Json/Newtonsoft.Json.DLL.
LOG: Attempting download of new URL file:///c:/users/user/documents/visual studio 2013/Projects/foo/bar/bin/Newtonsoft.Json.DLL.
LOG: Using application configuration file: c:\users\user\documents\visual studio 2013\Projects\foo\bar\web.config
LOG: Using host configuration file: C:\Users\user\Documents\IISExpress\config\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Redirect found in application configuration file: 4.5.0.0 redirected to 6.0.1.0.
LOG: Post-policy reference: Newtonsoft.Json, Version=6.0.1.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed
LOG: Attempting download of new URL file:///C:/Users/user/AppData/Local/Temp/1/Temporary ASP.NET Files/root/48686d37/9d7a6572/Newtonsoft.Json.DLL.
LOG: Attempting download of new URL file:///C:/Users/user/AppData/Local/Temp/1/Temporary ASP.NET Files/root/48686d37/9d7a6572/Newtonsoft.Json/Newtonsoft.Json.DLL.
LOG: Attempting download of new URL file:///c:/users/user/documents/visual studio 2013/Projects/foo/bar/bin/Newtonsoft.Json.DLL.
WRN: Comparing the assembly name resulted in the mismatch: Major Version
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.

स्टैक ट्रेस:

[FileLoadException: Could not load file or assembly 'Newtonsoft.Json' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]

[FileLoadException: Could not load file or assembly 'Newtonsoft.Json, Version=6.0.1.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
       System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
       System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +34
       System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +152
       System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +77
       System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +16
       System.Reflection.Assembly.Load(String assemblyString) +28
       System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +38

[ConfigurationErrorsException: Could not load file or assembly 'Newtonsoft.Json, Version=6.0.1.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
       System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +752
       System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +218
       System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +130
        System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +170
       System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies() +91
       System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath, Boolean& isRefAssemblyLoaded) +285
       System.Web.Compilation.BuildManager.ExecutePreAppStart() +153
       System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +516

[HttpException (0x80004005): Could not load file or assembly 'Newtonsoft.Json, Version=6.0.1.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
       System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9913572
       System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101
       System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18408

2
ठीक है, मुझे लगता है कि मुझे अब यह काम करने के लिए मिला है। मैंने अपनी मशीन पर प्रत्येक Newtonsoft.Json.dll को हटा दिया है जो नवीनतम संस्करण नहीं था जो मुझे मिल सकता था, सुनिश्चित करें कि मेरे पास NuGet में नवीनतम संस्करण था, और इसे बनाएं और सुनिश्चित करें कि बिन फ़ोल्डर में नवीनतम एक था, और मैंने web.config और .csproj में परिवर्तन छोड़ दिए। अब मैं एक और त्रुटि पर हूँ, इसलिए इसे काम करना होगा ...
noobieDev

1
अपने प्रश्न का उत्तर जोड़ें ताकि लोग देख सकें कि यह हल हो गया है? और इसे समाधान के रूप में चिह्नित करें
प्रति हॉर्न्ज-शियरबेक

2
मुझे इस समस्या का कुछ संस्करण आज भी (3/1/2016) 8.0.2 संस्करण के साथ मिल रहा है। यह संस्करण 6.0.0 लोड करने का प्रयास कर रहा है। मेरे समाधान संदर्भ 6.0.0 में कोई फ़ाइल नहीं। कोई संस्करण 6.0.0 है। । मेरे समाधान क्षेत्र में कहीं भी। मेरे पास अपने कंप्यूटर पर newtonsoft.json.dll की कई प्रतियां हैं, विभिन्न संस्करणों में, वे 3 पार्टी सॉफ़्टवेयर स्थापित करके उपयोग किए जाते हैं जिन्हें मैं गड़बड़ नहीं करना चाहता। उन सभी प्रतियों को हटाने के अलावा, मैंने इस पूरे धागे में वर्णित हर समाधान की कोशिश की है, और कुछ भी काम नहीं किया है।
शाविस

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

1
अपनी सभी परियोजनाओं में Newtonsoft.Json के समान संस्करण को स्थापित करें, भले ही उनका उपयोग न करें।
रुबस्टैकऑवरफ्लो

जवाबों:


274

इसे हल करने के लिए, मैंने निम्नलिखित आदेशों को चलाकर और परिणामों की जाँच करके अपनी सभी परियोजनाओं का उपयोग एक ही संस्करण में सुनिश्चित किया:

update-package Newtonsoft.Json -reinstall

और, अंत में मैंने अपने web.config से निम्नलिखित को हटा दिया:

  <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>

यदि आप अपने सभी न्यूटनसॉफ्ट को सुनिश्चित करना चाहते हैं। जसन पैकेज एक ही संस्करण हैं, तो आप इस तरह के संस्करण को निर्दिष्ट कर सकते हैं:

update-package Newtonsoft.Json -version 6.0.0 -reinstall

17
बस पुनर्स्थापना आदेश चलाने से मेरे लिए काम किया। मुझे web.config को संशोधित करने की आवश्यकता नहीं थी।
कीथ

4
मुझे इस त्रुटि से छुटकारा पाने के लिए बस <dependAssembly> टैग को जोड़ना पड़ा।
निकल्स मोलर जेपसेन

3
मुझे -version प्रदान करना था, लेकिन मेरे मामले में इसे काम करने के लिए -reinstall फ्लैग को छोड़ दें।
ऐरे

1
मैं हाल के संस्करण 9.0.1 का उपयोग कर रहा हूं, लेकिन यह वही त्रुटि दिखा रहा था। मैंने तब csproj फ़ाइल में संस्करण की जाँच की और यह 9.0.0.0 था, जो मेरे web.config में जोड़ा गया और समस्या हल हो गई। 1. सुनिश्चित करें कि csproj में संस्करण web.config के समान है। संस्करण संख्याओं से सावधान रहें, यह x.0.1 कह सकता है जब वास्तविक संस्करण x.0.0.0 है, x 6 या 9 या जो कुछ भी हो सकता है ।
यूजीन

7
ध्यान दें कि VS2017 में कमांड चलाने के लिए, आप टूल्स में जा सकते हैं -> नगेट पैकेज मैनेजर -> पैकेज मैनेजर कंसोल
रोज

83

मैं Newtonsoft.Json v6.0.3 का उपयोग कर रहा हूं, लेकिन यह मुझे अपनी Web.config फाइल में करना है:

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

ध्यान दें कि भले ही मैं 6.0.3 का उपयोग कर रहा हूं, मुझे अंदर रखना होगा newVersion="6.0.0.0"

मेरे पैकेज में। मेरे पास मौजूद फाइल:

<package id="Newtonsoft.Json" version="6.0.3" targetFramework="net45" />

1
एक नोट के रूप में, मैंने उन सभी चीज़ों को अनइंस्टॉल करने / हटाने / हटाने की कोशिश की, जो मुझे मिल सकते थे, जो कि न्यूटनसॉफ्ट के साथ करना था। इसे फिर से स्थापित करने के लिए Nuget का उपयोग करना था, लेकिन अभी भी ऊपर त्रुटि प्राप्त कर रहा था। यह तब तक नहीं था जब तक मैंने अपने द्वारा किए गए परिवर्तनों को ठीक से काम करने में सक्षम नहीं पाया।
क्रेग्व जूल

मैंने इस समस्या का अनुभव किया और इसका निदान करने में मदद करने के लिए असेंबली बाइंडिंग लॉग व्यूअर का उपयोग किया। असेंबली बाइंडर v6.0.3 Newtonsoft.Json.dll को v6.0.0.0 के रूप में रिपोर्ट करता है, इसलिए जब मैं इसे 6.0.3 के रूप में कॉन्फ़िगर किया था, तो रीडायरेक्ट विफल हो जाएगा।
जेसन स्लोकोम्ब

"नोट" लाइन मेरी मदद करती है। मैं शुरुआत में 9.0.1.19813 के रूप में बंधन में नएVersion के रूप में था क्योंकि DLL जो कहता है। मेरे पास अब यह है: <संदर्भ शामिल करें = "Newtonsoft.Json, संस्करण = 9.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 30ad4fe6b2a6aeed, processorArchitecture / MSIL"> <SpecificVersion> False </ SpecificVersion> </ ReferenceAssembly। <असेम्बलीटेंटिटी नाम = "न्यूटनसॉफ्ट.जॉन" कल्चर = "न्यूट्रल" publicKeyToken = "30ad4fe6b2a6aeed" /> <बाइंडिंग अप्रत्यक्ष पुराने विचलन = "0.0.0.0-9.0.0.0" newVersion = "9.0.0.0" /> </
dependAssembly

62

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

मैं एक सख्त ढांचे के साथ वातावरण में काम करता हूं और फ्रेमवर्क टीम अक्सर अलग-अलग डीएल के साथ संस्करण को परेशान करती है।

मैंने कैसे तय किया कि यह मुद्दा विजुअल स्टूडियो (2013) के भीतर पैकेज मैनेजर कंसोल को चलाने के लिए था। वहाँ से मैं निम्नलिखित कमांड भागा:

update-package Newtonsoft.Json -reinstall

के बाद

update-package Newtonsoft.Json

इसने मेरी सभी कॉन्फिग फाइल्स और संबंधित प्रोजेक्ट फाइल्स को अपडेट किया। उन सभी को dll के एक ही संस्करण के लिए मजबूर करना। जिसे लेटेस्ट पाने के लिए फिर से अपडेट करने से पहले शुरुआत में वर्जन 4.5 था।


यह मेरे लिए समस्या का समाधान करने वाला अपडेट था। मेरा प्रोजेक्ट Newtonsoft संस्करण 7.0 में अपडेट किया गया था।
आईडी।

मेरे लिए काम किया। ऐसा करने के बाद, यह सुनिश्चित करने के लिए कि आपका पैकेज .config और web.config फ़ाइल से मेल खाता है, महत्वपूर्ण है।
TheValyreanGroup

मेरे लिए काम किया जब NuGet पैकेज मैनेजर कंसोल से किया धन्यवाद!
Kbdavis07

25

मेरे पास एक ही त्रुटि संदेश था और, जैसा कि आपने उल्लेख किया है, यह न्यूटनसॉफ्ट के विभिन्न संस्करणों के कारण था। Json.dll को संदर्भित किया जा रहा है।

मेरे MVC समाधान में कुछ परियोजनाओं ने उस dll के संस्करण 4 के लिए NuGet पैकेज का उपयोग किया।

मैंने तब एक NuGet पैकेज (मेरे मामले में Salesforce के लिए) जोड़ा, जो Newtonsoft.Json संस्करण 6 को प्रोजेक्ट में से एक पर निर्भरता के रूप में लाया। यही मेरे लिए समस्या का कारण बना।

चीजों को साफ करने के लिए, मैंने समाधान के लिए ज्यूस.नेट पैकेज को अपडेट करने के लिए समाधान (टूल मेनू या समाधान राइट-क्लिक पर) के लिए नुगेट पैकेज प्रबंधक में अपडेट अनुभाग का उपयोग किया, इसलिए यह सभी परियोजनाओं के लिए एक ही संस्करण था।

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

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

क्या होगा यदि DLL में न्यूटॉनसॉफ्ट के विभिन्न संस्करणों के लिए निर्भरताएँ हैं। एक ही MVC ऐप के लिए Json? यह वह जगह है जहां मैं फंस गया हूं।
जेरेमी रे ब्राउन

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

17

ठीक है, मुझे लगता है कि मुझे अब यह काम करने के लिए मिला है। मैंने अपनी मशीन पर प्रत्येक Newtonsoft.Json.dll को हटा दिया है जो नवीनतम संस्करण नहीं था जो मुझे मिल सकता था, सुनिश्चित करें कि मेरे पास NuGet में नवीनतम संस्करण था, और इसे बनाएं और सुनिश्चित करें कि बिन फ़ोल्डर में नवीनतम एक था, और मैंने web.config और .csproj में परिवर्तन छोड़ दिए। अब मैं एक और त्रुटि पर हूं, इसलिए इसे काम करना चाहिए।


2
आप अपने मशीन के सभी स्थानों को खोजने के बारे में कैसे गए?
16

मेरे पीसी के लिए टीम फाउंडेशन सर्वर द्वारा प्रोजेक्ट प्राप्त करते समय मुझे भी त्रुटि मिली। मैं अपने समाधान में newtonsoft का संदर्भ जोड़ता हूं। यह काम नहीं किया। तब मैंने nuget पैकेज मैनेजर के माध्यम से json.net (newtonsoft.json) स्थापित किया है। अब यह कैसे है अच्छा कर रहा है।
मोहम्मद सादिकुर रहमान

यह बिन फ़ोल्डर फ़ाइल नाम के अंदर है - Newtonsoft.Json.dll इस फ़ाइल को हटाएं और पैकेज को पुनर्स्थापित करें या बस निचले संस्करण को स्थापित करें और NuGet-Solution
maddy

7

मेरी वेब पर इस भाग को टिप्पणी करके। इस समस्या को हल किया:

<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>

लेकिन निश्चित रूप से आपको यह सुनिश्चित करने की आवश्यकता है कि आपने अपडेट किया है या आपके पास अपने पैकेज मैनेजर कंसोल में ऐसा करके सही संस्करण है:

update-package Newtonsoft.Json -reinstall

4

मैंने ओलेग द्वारा चरणों की कोशिश की है, और उन्होंने मेरी उसी स्थिति के लिए काम किया है।

कदम:

  1. update-package Newtonsoft.Json -reinstallपैकेज मैनेजर में चलाएं ।

  2. binछिपी हुई फ़ाइलों को देखने और binफ़ोल्डर को हटाकर सक्षम करें ।

  3. अपने विज़ुअल स्टूडियो को बंद करें और इसे फिर से खोलें।

  4. अब अपना प्रोजेक्ट फिर से चलाएं। मेरा मानना ​​है कि यह ठीक होना चाहिए!


4

आप 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-8.0.0.0" newVersion="8.0.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

3

मेरे मामले में यह सिर्फ एक मामला था:

Tools -> NuGet Package Manager -> Package Manager Settings -> Clear Cache

समस्या तब उत्पन्न हुई जब मैंने एक TFS फ़ोल्डर का रीमैप किया।


3

क्या वास्तव में मेरी मदद की थी मुझे Resharper बिल्ड को बंद करने और अपने प्रोजेक्ट पर VisualStudio पुनः बिल्ड विकल्प का उपयोग करने के लिए।


आपने वह कैसे किया?
नाओमी

1
Resharper के विकल्पों में: Tools -> ReSharper Build -> Build Engine - "Visual Studio" चुनें
Shaulian

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

3

टूल्स >> NuGet पैकेज मैनेजर >> समाधान अपडेट के लिए पैकेज प्रबंधित करें नवीनतम संस्करण के लिए सभी समाधानों के न्यूटनसॉफ्ट.जॉन


2

यदि आप किसी प्रकार की तोड़फोड़ के साथ काम कर रहे हैं: परियोजना को हटा दें और इसे फिर से डाउनलोड करें, तो यह मेरे लिए काम किया: एस


चारों ओर लंबा रास्ता, लेकिन मुझे ऐसा करना पड़ा क्योंकि मेरे लिए कोई अन्य समाधान काम नहीं किया
माइक रेसोली

2

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

  • अपने विजुअल स्टूडियो में जाएं
    1. उपकरण> एक्सटेंशन और अपडेट
    2. बाईं ओर दी गई सूची में "अपडेट" चुनें।
    3. "उत्पाद अपडेट" चुनें।
    4. नवीनतम संस्करण में अपडेट करें

हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक-केवल उत्तर अमान्य हो सकते हैं यदि लिंक किए गए पृष्ठ बदल जाते हैं
abarisone

इस समाधान के साथ मेरा मुद्दा तय हो गया था धन्यवाद! मैं संस्करण 8.0.1 स्थापित किया था और जब तक मैं VS2013 अद्यतन 5 के लिए अद्यतन यह काम नहीं किया
डेविन Prejean

2

मैं नहीं जानता कि क्यों, लेकिन मेरे मामले में, भले ही मैं प्रोजेक्ट से बिन फ़ोल्डर निकालता हूं, जब मैं प्रोजेक्ट बनाता हूं तो यह newtonsoft.json के पुराने संस्करण की प्रतिलिपि बनाता है, मैंने पैकेज फ़ोल्डर से नए संस्करण के डीएल की प्रतिलिपि बनाई और यह अभी के लिए हल करता है।


मेरा मुद्दा भी ऐसा ही था। मेरे समाधान में, मेरे पास एक परीक्षण परियोजना है। परीक्षण परियोजना बिन में संस्करण 9 प्राप्त कर रही थी, लेकिन मैं जिस परियोजना का परीक्षण कर रहा था, उसका संस्करण 12 था। मैंने परीक्षण के बिन फ़ोल्डर के तहत परियोजना से संस्करण 12 को परीक्षण के बिन फ़ोल्डर में कॉपी किया।
जोश

2

कुछ मामलों में यदि आप अपने Binऔर Objफ़ोल्डरों को हटा देते हैं तो यह समस्या दूर हो जाएगी।


2

ठीक है, तो मुझे लगता है कि करने के लिए इस लंबी सूची बनाम एक नकली सवाल बनाने के लिए मेरा जवाब यहाँ जोड़ने के लिए है ...

यदि आप .NET कोर 3.0 (इस समय पूर्वावलोकन) का उपयोग करके 2019 में प्राप्त कर रहे हैं, तो यह सुनिश्चित करना है कि सभी परियोजनाएं एक ही .NET कोर संस्करण (मेरे मामले में 3.0) को लक्षित कर रही हैं। मुझे लगता है कि मेरे पास 2.1 को लक्षित करने वाले समाधान में एक परियोजना थी और बाकी 2.2 थे इसलिए मैं शायद 2.2 के साथ अटक सकता था ...

मेरे पास Newtonsoft.Json भी किसी भी परियोजना में स्थापित नहीं है, और स्वाभाविक रूप से इसे जोड़ने से समस्या ठीक नहीं हुई।

यदि आपके पास आपके समाधान में .NET मानक कक्षा पुस्तकालय या w / e हैं, तो उन्हें एक ही संस्करण पर होने की आवश्यकता नहीं है, हालांकि वे संभवतः नवीनतम होना चाहिए जो आप जा सकते हैं। उदाहरण के लिए, मेरी .NET स्टैंडर्ड क्लास लाइब्रेरीज़ 2.2 पर हैं क्योंकि अभी तक .NET स्टैंडर्ड 3.0 नहीं है।


1

चेक किए गए सहित किसी भी उत्तर ने मेरे लिए काम नहीं किया।

समाधान कहीं अधिक सरल था। मैंने पहली बार अपनी BUS लेयर से संदर्भ हटा दिए। फिर परियोजना से dll को हटा दिया (यह सुनिश्चित करने के लिए कि यह चला गया है), फिर JSON.NET को nuget packeges से पुनर्स्थापित किया। और, मुश्किल हिस्सा था, "इसे बंद करना और फिर से"।

मैंने बस दृश्य स्टूडियो को फिर से शुरू किया, और वहां यह काम किया!

इसलिए, यदि आप हर संभव कोशिश करते हैं और फिर भी समस्या का समाधान नहीं कर सकते हैं, तो बस दृश्य स्टूडियो को बंद करने की कोशिश करें और फिर से, यह मदद कर सकता है।


2
मुझे लगता है कि सरल व्यंग्य था।
वर्थ 7

1

यदि इनमें से कोई भी काम नहीं करता है, तो कृपया इस उत्तर की जाँच करें:

https://stackoverflow.com/a/12011221/150370

( TL; DR : configurationअपनी कॉन्फिग फ़ाइल में टैग से xml नेमस्पेस निकालें । अन्यथा बाइंडिंग रीडायरेक्ट्स को नजरअंदाज कर दिया जाएगा)


1

मैंने बिन फ़ोल्डर में Newtonsoft.json.dll के निचले संस्करण को हटाकर इसे हल किया और Newtonsoft.json.dll V6.0.0.0 को जोड़ा और निम्नलिखित वेब हटा दिए।

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

1

मुझे डॉटनेट कोर के साथ भी यही समस्या थी और नुगेट कैश को क्लियर करके इसे ठीक करने में कामयाब रहा।

शक्तियां खोलें और निम्न कमांड दर्ज करें।

dotnet nuget locals all --clear

तब मैंने विजुअल स्टूडियो को बंद कर दिया, इसे फिर से खोला और पैकेज मैनेजर कंसोल में निम्नलिखित कमांड दर्ज किया:

Update-Package

NuGet को अब सभी पैकेजों को पुनर्स्थापित करना चाहिए और नगेट कैश को फिर से भेजना चाहिए।

उसके बाद मैं एक लिनक्स कंटेनर में अपने डॉटनेट कोर वेबपी को बनाने और शुरू करने में सक्षम था।


1

इसका हल जो मेरी समस्या का हल है

गोटो संदर्भ-> राइट क्लिक न्यूटनसॉफ्ट.जॉन - गोटो गुण और संस्करण की जांच करें

यह एक ही संस्करण में होना चाहिए

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

1

इसके साथ घंटों संघर्ष करने के बाद ... मैंने निम्न कार्य किया:

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-12.0.0.0" newVersion="12.0.0.0" />
    </dependentAssembly>

    <!-- other assemblies... -->

  </assemblyBinding>
</runtime>

सही newVersion और oldVersion नंबर दर्ज करने की कुंजी परियोजना के Referencesपैकेज को उसके गुणों पर जाएं या क्लिक करने के लिए खोलेंalt + enter

आपको एक अनुभाग मिलेगा, Versionजो मेरे मामले में था 12.0.0.0जबकि वास्तव में 12.0.3जब प्रबंधित नुगेट के साथ खोज की गई थी।

इसलिए आपको संदर्भ गुणों से पैकेज का संस्करण चुनने की आवश्यकता है (मेरे मामले में 12.0.0.0)

अंत में, cleanऔर rebuildपरियोजना (आप पहले binऔर objफ़ोल्डरों को हटाना चाह सकते हैं )।

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


0

आसान कदम। (1) पैकेज मैनेजर में "अपडेट-पैकेज Newtonsoft.Json -reinstall" चलाएं।

(2) छिपी हुई फ़ाइलों को देखने और बिन फ़ोल्डर को हटाने के लिए सक्षम करके आप बिन हटाएं।

(3) अपने दृश्य स्टूडियो को बंद करें और इसे फिर से खोलें।

(४) अब अपना प्रोजेक्ट फिर से चलाएं। मेरा मानना ​​है कि यह ठीक होना चाहिए


0

मैंने इस समस्या को मारा क्योंकि मेरे पास था: प्रोजेक्ट A (एक डेस्कटॉप .exe) का संदर्भ प्रोजेक्ट B (एक पोर्टेबल। Dll) था। A & B के पास JSON.Net के विभिन्न संस्करण थे, और इसलिए लोडर संघर्ष था। एक बार जब मैंने JSON.net के सभी संस्करणों को समान कर दिया, तो यह काम कर गया। (यह प्रभाव में है कि ऊपर दिए गए कुछ समाधान क्या कर रहे हैं - मैं सिर्फ यह बता रहा हूं कि यह क्यों काम करता है)


0

मैंने हाल ही में और पुराने प्रोजेक्ट के साथ इससे संघर्ष किया।

मैं इस समस्या को ट्रैक करने में कामयाब रहा कि dll का कौन सा संस्करण वास्तव में बिन फ़ोल्डर में था।

मेरे पास एक पोस्ट-बिल्ड स्क्रिप्ट थी जो एक dll लाइब्रेरी फ़ोल्डर से बिन फ़ोल्डर में आश्रित असेंबलियों की नकल करती थी। नगेट से पहले के दिनों का एक सामान्य सेटअप।

इसलिए हर बार जब मैंने पोस्ट-बिल्ड स्क्रिप्ट बनाई, तो Json.net के सही संस्करण को पुराने के साथ बदल दिया


0

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

त्रुटि संदेश बताता है कि इस स्थान पर एक समस्या है /Projects/foo/bar/bin/Newtonsoft.Json.DLL। DLL कहाँ है! एक बुनियादी संपत्ति की जांच ने मुझे बताया कि यह 4.5.0.0 या एक जैसा था इसलिए मैंने 4.5 तक दिखने और 4.5 का उपयोग करने के लिए वेबकॉन्फ़िग को बदल दिया।


0

इन विकल्पों में से कोई भी मेरे लिए काम नहीं करता था, अंत में यह था;

टेस्ट> टेस्ट सेटिंग> * .testrunconfig

मुझे एक नई लाइन जोड़नी थी

<DeploymentItem filename="packages\Newtonsoft.Json.4.5.8\lib\net40\Newtonsoft.Json.dll" />

सुनिश्चित करें कि आपके सेटअप के लिए पथ और संस्करण सही है।


0

मेरी भी यही समस्या थी। मैंने एक वेब एपीआई परियोजना बनाई और फिर इसे .net 4.5.1 से .net 4.6.1 में अपग्रेड किया। IDE को बंद करना, IIS को रोकना और C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files \ dir की सामग्री हटाना समस्या को ठीक कर दिया।

HTH


0

यह समस्या मेरे लिए नूगेट पैकेज को ताज़ा करने या परियोजना पर "क्लीन" करने से हल नहीं हुई। इसे "obj" फ़ोल्डर को मैन्युअल रूप से साफ़ करके हल किया गया था।


0

यहां इस समस्या का मेरा समाधान है, सुनिश्चित करें कि appconfig या packageconfig में संस्करण संख्या आपके संदर्भ में संदर्भ संस्करण के समान है। यहाँ देखें

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