Não foi possível carregar o arquivo ou assembly ‘Newtonsoft.Json, Version = 4.5.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed’

Estou recebendo o erro

System.IO.FileLoadException: Não foi possível carregar o arquivo ou assembly ‘Newtonsoft.Json, versão = 4.5.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed’ ou uma de suas dependencies. A definição de manifesto do assembly localizado não corresponde à referência de assembly. (Exceção de HRESULT: 0x80131040)

para minha compilation de CI

Solução que eu tentei

    

Também não funcionou

No console do gerenciador de pacotes, execute: Update-Package –reinstall Newtonsoft.Json .

ATUALIZAR

Originalmente, postei isso como um comentário, mas como sugeriu @OwenBlacker, vou colocá-lo aqui:

Se você ainda receber um erro depois de fazer isso, então o que funcionou para mim, eventualmente, é que eu deletei a seção do Json.Net do meu arquivo .config . Reinstalar traz de volta, se não está lá e, aparentemente, você precisa excluí-lo. Até que haja uma solução normal no próprio pacote, receio que essa etapa manual seja obrigatória.

Nota: Por favor, leia os comentários abaixo antes de fazer isso.

De acordo com o comentário de René abaixo, esteja ciente de que o comando postado na resposta irá reinstalar o pacote em todos os projetos da sua solução. Então, se você usar o pacote Newtonsoft.Json em vários projetos e talvez usar versões diferentes, apenas executar o comando acima pode ter consequências indesejadas.

Para todos que tiverem problemas com a versão Newtonsoft.Json v4.5, tente usar isso em web.config ou app.config:

         

IMPORTANTE : Verifique se a tag de configuration do seu arquivo de configuração não possui atributo de namespace (conforme sugerido em https://stackoverflow.com/a/12011221/150370 ). Caso contrário, as tags assemblyBinding serão ignoradas.

O ponto chave é referenciar a versão correta no seu arquivo de configuração.

Passos;

1- olhar para o que é a versão do seu Newtonsoft.Json.dll na propriedade de referência do projeto que nunca a versão na pasta do seu pacote (Por exemplo, o meu é 7.0.1 e a versão de referência é 7.0.0.0)

2- olhar para o que o projeto espera de você na exceção (o meu é 6.0.0.0)

3- Adicione o assembly dependente ao seu arquivo de configuração como deveria ser ..

      

Eu não tive sorte com qualquer uma das soluções apresentadas aqui (desinstalar, reinstalar, excluir referências, criando bindingRedirects etc.) Eu tive que voltar para uma versão antiga do Newtonsoft. A versão 5.0.6 estava funcionando antes, então eu tentei isso. Eu tive que digitar esses dois comandos no Package Console:

uninstall-package newtonsoft.json -force

install-package newtonsoft.json -version "5.0.6"

A opção -force no primeiro comando é necessária para forçar a desinstalação. Dependências com outros assemblies impedem a desinstalação sem ele.

Eu consertei o problema de adicionar este redirecionamento de binding ao meu arquivo .config:

  . . .        

A mensagem de erro se queixa de não encontrar a versão 4.5.0.0, a versão atual do Newtonsoft.Json é 6.0.0.0, então o redirecionamento deve ir de 4.5 para 6.0, não vice-versa.

Eu acho que você está apontando para o alvo errado, mude para 4,5 em vez de 6,0

     

Isso deve funcionar.

Passei alguns dias tentando resolver esse problema frustrante. Eu tentei praticamente tudo que pode ser encontrado na web. Finalmente, descobri que esse erro poderia ser causado (como no meu caso) pelas diferentes versões de projeto .Net (4.5 e 4.5.1) em uma solução. Os passos abaixo fixaram isso para mim:

  1. Verifique a versão .Net de todos os projetos que estão em sua solução. Apenas clique com o botão direito no projeto e vá para Properties .

insira a descrição da imagem aqui

  1. Se possível, defina a mesma versão .Net para todos os projetos. Se não, pelo menos, tentar mudar o projeto Startup um (para mim este foi o único a causar os problemas).

  2. Remova todos os pacotes Newtonsoft.Json da solução.

    uninstall-package newtonsoft.json -force

  3. Atualize todas Newtonsoft.Json versões do Newtonsoft.Json em todos os arquivos packages.config , assim

  4. Reinstale o Newtonsoft.Json no “Console do Gerenciador de Pacotes” com:

    install-package newtonsoft.json

  5. Recriar a solução

(Opcional) 7. Se você alterou o projeto de boot, retorne-o novamente

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

Fiz o truque para mim 🙂

Remova o conjunto Newtonsoft.Json da referência do projeto e adicione-o novamente. Você provavelmente apagou ou substituiu a dll por acidente.

Eu estava escrevendo um cliente de serviço REST WebApi, portanto, para mim, esse erro foi causado pela adição de References aos assemblies System.Net.Http.Formatting e System.Net.Http.Formatting manualmente por meio de Add Reference, quando deveria ter adicionado o Microsoft.AspNet.WebApi.Client Pacote Microsoft.AspNet.WebApi.Client via NuGet . Veja também esta resposta para outra pergunta .

Se você estiver usando vários projetos na mesma solução e biblioteca de uma outra verificação, todos os projetos têm a mesma versão do Newtonsoft.Json

Normalmente adicionar o redirecionamento de binding deve resolver esse problema, mas não estava funcionando para mim. Depois de algumas horas batendo minha cabeça contra a parede, percebi que havia um atributo xmlns causando problemas no meu web.config. Depois de remover o atributo xmlns do nó de configuração no Web.config, os redirecionamentos de binding funcionavam conforme o esperado.

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

Implemente a versão correta na máquina do CI

Isso está dizendo que o carregador de assembly encontrou uma versão diferente da assembly Newtonsoft.Json , que não corresponde à referência que você criou no seu projeto. Para carregar o assembly corretamente, você deve implantar o assembly lado a lado com seu código compilado ou instale a versão correta do assembly na máquina de destino (ou seja, no GAC).

Alternativa: verifique se a configuração está no arquivo correto

Se você deseja manter a solução atual e carregar um assembly com uma versão diferente, verifique se a configuração que você publicou está no arquivo .config correto. Lembre-se que não há xpto.dll.config , uma DLL carregada por um aplicativo sempre usa o arquivo de configuração do aplicativo em execução.

        

Funciona para mim …. basta colocar a versão que você está usando em newVersion ou seja (newVersion = “7.0.0.0”)

Você tem duas versões diferentes da biblioteca JSON.NET em sua solução. Para resolver isso, você deve atualizá-los para a versão mais recente. Siga esses passos:

1-Open solution explorer 2-Clique com o botão direito no nome da solução 3-Select Manage Nuget Packages para a Solução 4-Select Atualizações no menu 5-Update JSON.NET package

Isso resolverá seu problema.

link: Não foi possível carregar o arquivo ou assembly ‘Newtonsoft.Json, versão = 7.0.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed’ ou uma de suas dependencies

Solução próxima

Abra o packages.config e o *.csproj com o editor de texto e apague qualquer linha que tenha o Newtonsoft.Json

Ex:
..\packages\Newtonsoft.Json.9.0.1\lib\net40\Newtonsoft.Json.dll True

Ou

Abra a solução novamente e reinstale o Newtonsoft.Json por Install-Package Newtonsoft.Json

Isso funciona para mim.

Nós tivemos exatamente o mesmo problema que você mencionou. Estamos usando nunit para executar testes através do CI, e temos nunit executando um arquivo chamado tests.nunit, que descreve uma lista de dispositivos dll de teste a serem executados.

Cada equipamento de teste tinha seu próprio arquivo de configuração, mas quando executado através do arquivo “tests.nunit” os redirecionamentos de binding parecem ser ignorados. A solução foi adicionar os redirecionamentos de binding a um novo arquivo de configuração, “tests.config” que estava ao lado do arquivo “tests.nunit”.

Você deve atualizar o arquivo web.config no servidor. Quando o nuget instalar o NewtonSoft atualize este arquivo incluindo este código

        

Eu tenho o mesmo tipo de problema. E também resolvi fazer o seguinte: Acesse TOOLS > NuGet Package Manager e Select Package Manager Console . Finalmente, execute os dois comandos a seguir 🙂

  1. desinstalar o pacote newtonsoft.json -force
  2. pacote de instalação newtonsoft.json

No meu caso, o projeto principal ainda estava referenciando uma versão antiga do Newtonsoft.Json que não existia mais no projeto (mostrada por um ponto de exclamação amarelo). Removendo a referência resolveu o problema, não foi necessário bindingRedirect.

Eu tive exatamente o mesmo problema com a versão 7.0.0.0, e o lib causando o meu problema foi o Microsoft.Rest.ClientRuntime que de alguma forma estava se referindo à versão errada (6.0.0.0) do Newtonsoft.json, apesar do gerenciamento correto de dependencies no nugget ( a versão correta do newtonsoft.json (7.0.0.0) foi instalada).

Eu resolvi isso aplicando o redirecionamento acima de 6.0.0.0 a 7.0.0.0 (do Kadir Can) no arquivo de configuração:

  

—-> Depois de alguns dias sem mudar nada, surgiu novamente com o mesmo erro. Eu instalei a versão 6.0.0.0 n atualizado para 7.0.0.0 ele funciona bem agora.

No meu caso, depois de baixar a assembly e adicionar a referência ao projeto, resolvi isso “desbloqueando” a DLL antes de adicionar a referência ao projeto.

Usando o Windows Explorer, navegue até o local da DLL, clique com o botão direito do mouse na DLL e selecione ‘propriedades’. Você encontrará um botão de ‘desbloqueio’ em uma das guias e poderá adicionar a referência e a assembly será carregada corretamente.

Eu cometi o erro de adicionar um arquivo .dll NewtonSoft para .net 4.5.

Meu projeto principal era 4.5, mas quando eu adicionei um projeto extra à minha solução, ele estranhamente o adicionou como um projeto .Net 2.0 … e quando eu tentei usar a dll 4.5 do NewtonSoft com isso, eu peguei esse “Newtonsoft.Json couldn não pode ser encontrado “erro.

A solução (é claro) foi mudar este novo projeto de .Net 2.0 para 4.5.

Nada de cima me ajudou, mas o que realmente consertou é o seguinte:

  1. Remova todas as ligações de dependência no app.config (de todos os arquivos app.config na solução)
  2. Execute o seguinte comando no “Console do Gerenciador de Pacotes”

Get-Project -Todos | Add-BindingRedirect

  1. Reconstruir

Referência: http://blog.myget.org/post/2014/11/27/Could-not-load-file-or-assembly-NuGet-Assembly-Redirects.aspx

Clique com o botão direito do mouse no seu projeto, selecione gerenciar pacotes do Nuget, digite newtonsoft na checkbox de pesquisa e instale a versão mais recente. Em seguida, execute seu aplicativo

Eu estava enfrentando o mesmo erro e lutei com isso por horas. Eu tinha um projeto de API da web que está usando Newtonsoft.json e outro projeto UnitTest para o projeto API da web. O projeto de teste de unidade também precisava da referência Newtonsoft.json. Mas ao adicionar o link eu estava recebendo a exceção acima.

Eu finalmente resolvi adicionando o trecho de código abaixo no app.config do projeto de teste de unidade:

     

Outro problema insidioso é que parece que os redirecionamentos de binding podem falhar silenciosamente se o elemento tiver uma configuração incorreta em qualquer outro elemento dependentAssembly.

Certifique-se de que você tenha apenas um elemento em cada elemento.

Em alguns casos, o VS gera isto:

    

Ao invés de

      

Levou-me muito tempo para perceber que este era o problema!

Abaixo seção adicionar ao seu web.config

         

Se o erro desaparecer localmente e ainda aparecer no servidor, a solução que funciona comigo é excluir a pasta bin e packages.config e web.config e fazer o upload desses arquivos novamente.

Basta verificar a versão das propriedades Newtonsoft.Json Newtonsoft

Então você precisa adicionar essa versão em sua configuração web (no meu caso 8.0.0.0)