Estou recebendo o erro
System.IO.FileLoadException: não foi possível carregar o arquivo ou o conjunto 'Newtonsoft.Json, versão = 4.5.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed' ou uma de suas dependências. A definição do manifesto da montagem localizada não corresponde à referência da montagem. (Exceção de HRESULT: 0x80131040)
para minha compilação de IC
Solução que tentei
<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>
Também não funcionou
Respostas:
No console do gerenciador de pacotes execute:
Update-Package –reinstall Newtonsoft.Json
.ATUALIZAR
Originalmente, eu postei isso como um comentário, mas como o @OwenBlacker sugeriu, basta colocá-lo aqui:
Se você ainda receber um erro depois de fazer isso, o que funcionou para mim foi que excluí a
<dependentAssembly>
seção do Json.Net do meu.config
arquivo. Reinstalar traz de volta se não estiver lá e, aparentemente, você precisa excluí-lo. Até que haja uma solução normal no próprio pacote, receio que esta etapa manual seja obrigatória.Nota: Leia os comentários abaixo antes de fazer isso.
Conforme o comentário de René abaixo, lembre-se de que o comando postado na resposta reinstalará o pacote em todos os projetos da sua solução. Portanto, se você usar o pacote Newtonsoft.Json em vários projetos e talvez usar versões diferentes, apenas a execução do comando acima pode ter consequências indesejadas.
fonte
<dependentAssembly>
seção do Json.Net do meu.config
arquivo. Reinstalar traz de volta se não estiver lá e, aparentemente, você precisa excluí-lo. Até que haja uma solução normal no próprio pacote, receio que esta etapa manual seja obrigatória.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
configuration
tag do seu arquivo de configuração não possui atributo de espaço para nome (conforme sugerido em https://stackoverflow.com/a/12011221/150370 ). Caso contrário, asassemblyBinding
tags serão ignoradas.fonte
newVersion="6.0.0.0"
deve ser alterado paranewVersion="7.0.0.0"
ou qualquer versão que você está usandoO ponto principal é referenciar a versão correta no seu arquivo de configuração.
Passos;
1- veja qual é a versão do seu Newtonsoft.Json.dll na propriedade de referência do projeto, seja qual for a versão na pasta do pacote (por exemplo, a minha é 7.0.1 e a versão de referência é 7.0.0.0)
2- observe o que o projeto espera de você na exceção (a minha é 6.0.0.0)
3- Adicione uma montagem dependente ao seu arquivo de configuração, como deve ser.
fonte
Não tive sorte com nenhuma das soluções apresentadas aqui (desinstalar, reinstalar, excluir referências, criar bindingRedirects etc.). Precisei voltar para uma versão antiga do Newtonsoft. A versão 5.0.6 já estava funcionando antes, então tentei essa. Eu tive que inserir esses dois comandos no console do pacote:
uninstall-package newtonsoft.json -force
install-package newtonsoft.json -version "5.0.6"
A
-force
opção no primeiro comando é necessária para forçar a desinstalação. Dependências com outros assemblies impedem a desinstalação sem ele.fonte
Corrigi o problema ao adicionar esse redirecionamento de ligação ao meu arquivo .config:
A mensagem de erro reclama de não encontrar a versão 4.5.0.0, a versão atual do Newtonsoft.Json é 6.0.0.0, portanto, o redirecionamento deve ir de 4.5 para 6.0, e não vice-versa
fonte
Eu acho que você está apontando para o alvo errado, altere para 4.5 em vez de 6.0
Isso deve funcionar.
fonte
Passei alguns dias tentando resolver esse problema frustrante. Eu tentei praticamente tudo o que pode ser encontrado na web. Finalmente, descobri que esse erro poderia ser causado (como no meu caso) pelas diferentes versões do projeto .Net de destino (4.5 e 4.5.1) em uma solução. Os passos abaixo o consertaram para mim:
Properties
.Se possível, defina a mesma versão .Net para todos os projetos. Se não, pelo menos, tente alterar o projeto de inicialização (para mim, esse foi o responsável pelos problemas).
Remova todos os
Newtonsoft.Json
pacotes da solução.uninstall-package newtonsoft.json -force
Atualize todas as
Newtonsoft.Json
versões em todos ospackages.config
arquivos, assim<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net451" />
Reinstale
Newtonsoft.Json
do "Package Manager Console" com:install-package newtonsoft.json
Reconstrua a solução
(Opcional) 7. Se você alterou o projeto de inicialização, devolva-o novamente
fonte
Fiz o truque para mim :)
fonte
se você estiver usando vários projetos na mesma solução e biblioteca da outra verificação, todos os projetos terão a mesma versão do Newtonsoft.Json
fonte
Remova o assembly Newtonsoft.Json da referência do projeto e adicione-o novamente. Você provavelmente excluiu ou substituiu a dll por acidente.
fonte
Eu estava escrevendo um cliente de serviço WebApi REST, então, para mim, esse erro foi causado pela adição de referências aos assemblies
System.Net.Http
eSystem.Net.Http.Formatting
manualmente via Add Reference, quando eu deveria ter adicionado oMicrosoft.AspNet.WebApi.Client
pacote via NuGet . Veja também esta resposta para outra pergunta .fonte
Você tem 2 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 do mouse no nome da solução 3-Selecione Gerenciar pacotes Nuget para a solução 4-Selecione atualizações no menu 5-Atualize o pacote JSON.NET
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 dependências
fonte
Implante a versão correta na máquina do IC
Isso indica que o carregador de montagem encontrou uma versão diferente da
Newtonsoft.Json
montagem, que não corresponde à referência que você criou em seu projeto. Para carregar o assembly corretamente, você deve implantar o assembly lado a lado com seu código compilado ou instalar a versão correta do assembly na máquina de destino (por exemplo, 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ê postou está no
.config
arquivo correto . Lembre-se de que não existexpto.dll.config
, uma DLL carregada por um aplicativo sempre usa o arquivo de configuração do aplicativo em execução.fonte
Normalmente, adicionar o redirecionamento de ligação deve resolver esse problema, mas não estava funcionando para mim. Depois de algumas horas batendo a cabeça na parede, percebi que havia um atributo xmlns causando problemas no meu web.config. Após remover o atributo xmlns do nó de configuração no Web.config, os redirecionamentos de ligação funcionaram conforme o esperado.
http://www.davepaquette.com/archive/2014/10/02/could-not-load-file-or-assembly-newtonsoft-json-version4-5-0-0.aspx
fonte
Funciona para mim .... basta colocar a versão que você está usando em newVersion, ou seja (newVersion = "7.0.0.0")
fonte
Feche a solução.
Abra
packages.config
e*.csproj
com o editor de texto e exclua qualquer linha que tenha Newtonsoft.JsonEx:
<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>
Ou
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net40" />
Abra a solução novamente e reinstale o Newtonsoft.Json
Install-Package Newtonsoft.Json
Isso funciona para mim.
fonte
Tivemos exatamente o mesmo problema que você mencionou. Estamos usando o nunit para executar testes por meio do CI, e temos o nunit executando um arquivo chamado tests.nunit, que descreve uma lista de dispositivos de teste da DLL a serem executados.
Cada dispositivo de teste tinha seu próprio arquivo de configuração, mas quando executado no arquivo "tests.nunit", os redirecionamentos de ligação parecem ser ignorados. A solução foi adicionar os redirecionamentos de ligação a um novo arquivo de configuração, "tests.config", que estava ao lado do arquivo "tests.nunit".
fonte
Eu tenho o mesmo tipo de problema. E também resolvi isso da seguinte maneira: Vá para FERRAMENTAS > NuGet Package Manager e selecione Package Manager Console . Por fim, execute os dois comandos a seguir :)
fonte
Você deve atualizar o arquivo web.config no servidor. Quando o nuget instala o NewtonSoft, atualize este arquivo, incluindo este código
fonte
Basta verificar a versão do Newtonsoft.Json propriedades Newtonsoft
Então você precisa adicionar essa versão na sua configuração web (no meu caso 8.0.0.0) Web de configuração
fonte
Cometi o erro de adicionar um arquivo .dll da NewtonSoft para o .Net 4.5.
Meu projeto principal era 4.5, mas quando adicionei um projeto extra à minha solução, estranhamente o adicionei como um projeto .Net 2.0 ... e quando tentei usar a dll 4.5 da NewtonSoft com isso, obtive o seguinte "Newtonsoft.Json erro encontrado.
A solução (é claro) foi mudar esse novo projeto de .Net 2.0 para 4.5.
fonte
No meu caso, o projeto principal ainda fazia referência a uma versão antiga do Newtonsoft.Json, que não existia mais no projeto (mostrada por um ponto de exclamação amarelo). A remoção da referência resolveu o problema, nenhum bindingRedirect era necessário.
fonte
Eu tive exatamente o mesmo problema com a versão 7.0.0.0, e a lib que causou o problema foi o Microsoft.Rest.ClientRuntime, que de alguma forma se referia à versão errada (6.0.0.0) do Newtonsoft.json, apesar do gerenciamento de dependência correto no nugget ( a versão correta do newtonsoft.json (7.0.0.0) foi instalada).
Resolvi isso aplicando o redirecionamento acima de 6.0.0.0 para 7.0.0.0 (do Kadir Can) no arquivo de configuração:
----> Depois de alguns dias sem alterar nada, surgiu novamente com o mesmo erro. Eu instalei a versão 6.0.0.0 n atualizei para 7.0.0.0 ele funciona bem agora.
fonte
No meu caso, depois de baixar o 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 'desbloquear' em uma das guias e poderá adicionar a referência e a montagem será carregada corretamente.
fonte
Nada do alto me ajudou, mas o que realmente consertou é o seguinte:
Get-Project -All | Add-BindingRedirect
Referência: http://blog.myget.org/post/2014/11/27/Could-not-load-file-or-assembly-NuGet-Assembly-Redirects.aspx
fonte
Clique com o botão direito do mouse no seu projeto, selecione gerenciar pacotes Nuget, digite newtonsoft na caixa de pesquisa e instale a versão mais recente. Em seguida, execute seu aplicativo
fonte
Eu estava enfrentando o mesmo erro e lutei com ele por horas. Eu tinha um projeto de API da web que está usando o Newtonsoft.json e outro projeto UnitTest para o projeto de 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.
Finalmente resolvi adicionando o trecho de código abaixo no app.config do projeto de teste de unidade:
fonte
Outro problema insidioso é que parece que os redirecionamentos de ligação podem falhar silenciosamente se o elemento tiver uma configuração incorreta em qualquer outro elemento dependenteAssembly.
Verifique se você possui apenas um elemento em cada elemento.
Em alguns casos, o VS gera isso:
Ao invés de
Levei muito tempo para perceber que este era o problema!
fonte
A seção abaixo adiciona ao seu web.config
fonte
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 reenviar esses arquivos
fonte