[json] 파일 또는 어셈블리 ‘Newtonsoft.Json’또는 해당 종속 항목 중 하나를로드 할 수 없습니다. 매니페스트 정의가 어셈블리 참조와 일치하지 않습니다

검색 후 시도한 것 :

  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 파일을 편집하여 Newtonsoft 참조가 하나만 있는지 확인하십시오

    <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 Manager 콘솔에서 패키지 복구 / 다시 설치

그것은 성공하지만 사이트에 갈 때 오류가 발생합니다.

편집하다

좋아, 그래서 모든 nuget 패키지처럼 다시 설치하려고했는데 4.5 버전의 newtonsoft.json.dll을 다시 추가 한 것으로 보이지만 동일한 오류가 발생합니다. 내 프로젝트의 대상 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



답변

이를 해결하기 위해 다음 명령을 실행하고 결과를 확인하여 모든 프로젝트가 동일한 버전을 사용하도록했습니다.

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>

모든 Newtonsoft.Json 패키지가 동일한 버전 인지 확인하려면 다음 과 같이 버전을 지정할 수 있습니다.

update-package Newtonsoft.Json -version 6.0.0 -reinstall


답변

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"

내 packages.config 파일에는 다음이 있습니다.

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


답변

내 컴퓨터가 모든 위치에서 동일한 버전을 가지고 있고 프로젝트가 모두 동일한 참조 경로를 가리키고 있는지 확인한 후 다음을 시도했습니다. 또한 이전 버전의 바인딩이 자신의 것이고 현재 가지고있는 dll의 현재 버전에 바인딩되어 있는지 확인했습니다.

나는 엄격한 프레임 워크가있는 환경에서 일하고 프레임 워크 팀은 종종 다른 dll로 버전 관리를 화나게합니다.

이 문제를 해결 한 방법은 Visual Studio (2013) 내에서 패키지 관리자 콘솔을 실행하는 것이 었습니다. 거기에서 다음 명령을 실행했습니다.

update-package Newtonsoft.Json -reinstall

뒤에

update-package Newtonsoft.Json

이것은 모든 구성 파일과 관련 프로젝트 파일을 통해 업데이트되었습니다. 그것들을 모두 같은 버전의 dll로 강제합니다. 최신 버전을 얻기 위해 다시 업데이트하기 전에 처음 4.5 버전이었습니다.


답변

같은 오류 메시지가 나타 났으며 언급 한 것처럼 Newtonsoft.Json.dll의 다른 버전이 참조 되었기 때문입니다.

내 MVC 솔루션의 일부 프로젝트는 해당 dll 버전 4에 NuGet 패키지를 사용했습니다.

그런 다음 Newtonsoft.Json 버전 6을 프로젝트 중 하나에 종속시키는 NuGet 패키지 (내 경우에는 Salesforce 용)를 추가했습니다. 그것이 저에게 문제를 일으켰습니다.

정리를 위해 솔루션의 NuGet Package Manager (도구 메뉴 또는 솔루션 마우스 오른쪽 단추 클릭)의 업데이트 섹션을 사용하여 솔루션 전체에서 Json.Net 패키지를 업데이트하여 모든 프로젝트에서 동일한 버전이되었습니다.

그런 다음 App Config 파일을 확인하여 바인딩 리디렉션 라인이 아래에서 선택한 버전으로 이동하는지 확인했습니다.

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


답변

좋아, 나는 지금 일하기 위해 그것을 얻었다 고 생각한다. 내 컴퓨터에서 찾을 수있는 최신 버전이 아닌 모든 Newtonsoft.Json.dll을 삭제하고 NuGet의 최신 버전이 있는지 확인하고 빌드하여 bin 폴더의 최신 버전인지 확인하십시오. web.config 및 .csproj에 변경 사항을 남겨 두었습니다. 이제 다른 오류가 발생하여 작동해야합니다.


답변

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


답변

나는 Oleg의 단계를 시도했으며 그들은 같은 상황에서 일했습니다.

단계 :

  1. update-package Newtonsoft.Json -reinstall패키지 관리자에서 실행하십시오 .

  2. 당신의 삭제 bin숨겨진 파일을 볼 수 있도록하고 삭제하여 bin폴더에 있습니다.

  3. Visual Studio를 닫았다가 다시여십시오.

  4. 이제 프로젝트를 다시 실행하십시오. 나는 그것이 괜찮을 것이라고 믿는다!