Não foi possível carregar o arquivo ou assembly 'Newtonsoft.Json' ou uma de suas dependências. A definição de manifesto não corresponde à referência de montagem

216

Coisas que tentei depois de pesquisar:

  1. no Web.Config coloque uma ligação na versão antiga:

    <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. Edite meu arquivo .csproj para garantir que haja apenas uma referência da 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. Pesquise no meu computador todos os Newtonsoft.Json.dll e exclua todas as versões que não sejam da 6.0.1 e exclua o conteúdo da minha pasta temporária

  4. Reparar / reinstalar o pacote no console do gerenciador de nuget

Ele consegue criar, mas obtém o erro ao acessar o site.

EDITAR

ok, então tentei reinstalar como todos os pacotes nuget e parece ter adicionado novamente a versão 4.5 do newtonsoft.json.dll, mas estou recebendo o mesmo erro. O objetivo do meu projeto é o .NET 4.5.1 e aqui está o rastreamento de pilha que estou recebendo agora:

Erro de Servidor na '/' Aplicação.

Não foi possível carregar o arquivo ou o assembly Newtonsoft.Jsonou 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)

Descrição: ocorreu uma exceção não tratada durante a execução da solicitação da web atual. Revise o rastreamento de pilha para obter mais informações sobre o erro e onde ele se originou no código.

Detalhes da exceção System.IO.FileLoadException:: Não foi possível carregar o arquivo ou o assembly Newtonsoft.Jsonou 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)

Erro de origem:

Uma exceção não tratada foi gerada durante a execução da solicitação da web atual. Informações sobre a origem e o local da exceção podem ser identificadas usando o rastreamento da pilha de exceções abaixo.

Rastreio de carga da montagem: As informações a seguir podem ser úteis para determinar por que a montagem Newtonsoft.Jsonnão pôde ser carregada.

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

Rastreio de pilha:

[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
noobieDev
fonte
2
Ok, acho que consegui funcionar agora. Excluí todos os Newtonsoft.Json.dll da minha máquina que não eram a versão mais recente que consegui encontrar, verifiquei se possuía a versão mais recente no NuGet e construí-a e certifique-se de que era a mais recente na pasta bin e Eu deixei as alterações no web.config e no .csproj. Agora eu estou com outro erro, por isso deve estar trabalhando ...
noobieDev
1
Adicione a resposta à sua pergunta para que as pessoas possam ver que foi resolvida? E marcá-lo como a solução
Per Hornshøj-Schierbeck
2
Ainda estou tendo alguma versão desse problema (01/03/2016) com a versão 8.0.2. Está tentando carregar a versão 6.0.0. Nenhum arquivo na minha solução faz referência à 6.0.0. Não há versão 6.0.0. .dll em qualquer lugar da minha área de solução. Tenho muitas cópias do newtonsoft.json.dll no meu computador, de várias versões, que são usadas por softwares de terceiros instalados com os quais não quero mexer. Além de remover todas essas cópias, tentei todas as soluções mencionadas em todo este segmento e nada funcionou.
Shavais
1
Eu também encontrei essa mensagem de erro do newtonsoft-json quando adicionei referência de um projeto a outro projeto, mas o .Net Framework em projetos era diferente depois de criar o mesmo .Net Framework nos dois problemas corrigidos. Mas não consegui entender, em vez da mensagem de erro do Framework, por que mostra o erro relacionado ao newtonsoft-json.
Sameer 14/03
1
Instale a mesma versão do Newtonsoft.Json em todos os seus projetos, mesmo que eles não o usem.
rubStackOverflow 25/01

Respostas:

274

Para resolver isso, assegurei que todos os meus projetos usassem a mesma versão executando o seguinte comando e verificando os resultados:

update-package Newtonsoft.Json -reinstall

E, finalmente, removi o seguinte do meu 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>

Se você deseja garantir que todos os seus pacotes Newtonsoft.Json sejam da mesma versão, é possível especificar a versão da seguinte forma:

update-package Newtonsoft.Json -version 6.0.0 -reinstall
user1477388
fonte
17
Apenas executando o comando reinstalar funcionou para mim. Não precisei modificar o web.config.
21415 Keith
4
Eu apenas tive que adicionar a tag <dependentAssembly> para se livrar desse erro.
Nicklas Møller Jepsen
3
Eu tive que fornecer a versão-mas omiti o sinalizador -reinstall para fazê-lo funcionar no meu caso.
ANRE
1
Estou usando a versão recente 9.0.1, mas estava mostrando o mesmo erro. Em seguida, verifiquei a versão no arquivo csproj e ela foi 9.0.0.0, adicionei isso ao meu web.config e o problema foi resolvido. 1. Verifique se a versão no csproj é a mesma do web.config 2. Cuidado com os números da versão, ele pode dizer x.0.1 quando a versão atual é x.0.0.0, x pode ser 6 ou 9 ou o que for .
Eugene
7
Observe que, para executar o comando no VS2017, você pode ir em Ferramentas -> Nuget Package Manager -> Console do Gerenciador de Pacotes
Rose
83

Estou usando o Newtonsoft.Json v6.0.3, mas é isso que eu tinha que fazer no meu arquivo 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>

Observe que, mesmo usando o 6.0.3, tive que colocar newVersion="6.0.0.0"

No meu arquivo packages.config eu tenho:

<package id="Newtonsoft.Json" version="6.0.3" targetFramework="net45" />
CraigV
fonte
1
Apenas como uma observação, tentei desinstalar / remover / excluir tudo o que encontrei relacionado ao Newtonsoft.Json, usando o Nuget para reinstalá-lo, mas ainda estava recebendo o erro acima. Não foi até fazer as alterações que mencionei que eu era capaz de fazê-lo funcionar corretamente.
21416 CraigValv1
Tive esse problema e usei o Visualizador de Log de Ligação de Montagem para ajudar a diagnosticá-lo. O fichário de montagem relata o v6.0.3 Newtonsoft.Json.dll como v6.0.0.0, portanto, o redirecionamento falharia quando eu o configurasse como 6.0.3.
precisa
A linha "Nota" me ajuda. Eu tinha inicialmente 9.0.1.19813 como a newVersion no bindingRedirect, já que é o que a DLL diz. É isso que eu tenho agora: <Reference Include = "Newtonsoft.Json, Versão = 9.0.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed, processorArchitecture = MSIL"> <Versão Específica> Falso </Versão Específica> </Reference> <dependentAssembly> <assemblyIdentity name = "Newtonsoft.Json" culture = "neutral" publicKeyToken = "30ad4fe6b2a6aeed" /> <bindingRedirect oldVersion = "0.0.0.0-9.0.0.0" newVersion = "9.0.0.0" /> </dependentAssembly>
Mark Seefeldt
62

Tentei o seguinte depois de ter garantido que meu computador tinha a mesma versão em todos os locais e que meus projetos estavam todos apontando para o mesmo caminho de referência. Eu também havia me assegurado de que a ligação da versão antiga fosse deles e vinculada à versão atual da dll que eu possuía.

Eu trabalho em um ambiente com uma estrutura rígida e a equipe de estrutura frequentemente altera o controle de versão com as diferentes DLLs.

Como corrigi esse problema foi executar o console do gerenciador de pacotes no visual studio (2013). A partir daí, executei o seguinte comando:

update-package Newtonsoft.Json -reinstall

Seguido por

update-package Newtonsoft.Json

Isso passou e atualizou todos os meus arquivos de configuração e arquivos de projeto relevantes. Forçando todos eles para a mesma versão da DLL. Que era inicialmente a versão 4.5 antes de atualizar novamente para obter as últimas.

Samuel
fonte
Foi a atualização que resolveu o problema para mim. Meu projeto foi atualizado para a versão 7.0 da Newtonsoft.
Id_do_Julho
Trabalhou para mim. Depois de fazer isso, é importante observar se os arquivos package.config e web.config têm versões correspondentes.
TheValyreanGroup
Trabalhou para mim quando concluído a partir do NuGet Package Manager Console, obrigado!
Kbdavis07
25

Eu tive a mesma mensagem de erro e, como você mencionou, foi devido a diferentes versões do Newtonsoft.Json.dll sendo referenciadas.

Alguns projetos na minha solução MVC usavam o pacote NuGet para a versão 4 dessa dll.

Em seguida, adicionei um pacote NuGet (para o Salesforce no meu caso) que trouxe a versão 6 do Newtonsoft.Json como uma dependência de um dos projetos. Foi isso que desencadeou o problema para mim.

Para limpar as coisas, usei a seção Atualizações no NuGet Package Manager para a solução (fora do menu Ferramentas ou da solução, clique com o botão direito do mouse) para atualizar o pacote Json.Net em toda a solução, para que ela fosse a mesma versão para todos os projetos.

Depois disso, verifiquei apenas os arquivos de configuração do aplicativo para garantir que todas as linhas de redirecionamento de ligação fossem para a versão escolhida, conforme abaixo.

<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
S__
fonte
E se as DLLs tiverem dependências para diferentes versões do Newtonsoft.Json para o mesmo aplicativo MVC? É aqui que estou preso.
Jeremy Ray Brown
Use a opção Consolidar no gerenciador de pacotes NuGet para garantir que as versões não se afastem.
Niico 12/04
17

Ok, acho que consegui funcionar agora. Excluí todos os Newtonsoft.Json.dll da minha máquina que não eram a versão mais recente que consegui encontrar, verifiquei se possuía a versão mais recente no NuGet e construí-a e certifique-se de que era a mais recente na pasta bin e Eu deixei as alterações no web.config e no .csproj. Agora estou com outro erro, por isso deve estar funcionando ..

noobieDev
fonte
2
Como você encontrou todos os locais em sua máquina?
obaylis
Eu recebi o erro também ao obter o projeto pelo servidor de base de equipe no meu pc.i adicionei referência do newtonsoft à minha solução.não funcionou.Em seguida, instalei o json.net (newtonsoft.json) através do gerenciador de pacotes nuget. trabalhando bem.
Mohammad Sadiqur Rahman
está dentro do nome do arquivo da pasta bin - Newtonsoft.Json.dll Exclua este arquivo e reinstale o pacote ou apenas instale a versão inferior e reinstale a versão correta usando o NuGet-Solution
maddy
7

Ao comentar esta parte no meu web.config resolveu meu problema:

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

Mas é claro que você precisa se atualizar ou ter a versão correta, fazendo isso no console do gerenciador de pacotes:

update-package Newtonsoft.Json -reinstall
Willy David Jr
fonte
4

Eu tentei os passos de Oleg, e eles trabalharam para a minha mesma situação.

Passos:

  1. Execute update-package Newtonsoft.Json -reinstallno Gerenciador de Pacotes.

  2. Exclua seu bin, ativando a visualização dos arquivos ocultos e a exclusão da binpasta.

  3. Feche o Visual Studio e abra-o novamente.

  4. Agora execute seu projeto novamente. Eu acredito que deveria estar tudo bem!

Matthew Cavallo
fonte
4

Você pode resolver o problema adicionando as linhas abaixo no arquivo 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>
Jineesh Uvantavida
fonte
3

No meu caso, era apenas uma questão de:

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

O problema foi causado quando eu remapeei uma pasta TFS.

daniloquio
fonte
3

O que realmente me ajudou foi desativar a compilação do Resharper e usar a opção VisualStudio Re-Build no meu projeto.

Shaulian
fonte
Como você fez isso?
Naomi
1
Nas opções do Resharper: Ferramentas -> ReSharper Build -> Build Engine - escolha "Visual Studio"
Shaulian
Eu instalei uma versão de teste há um tempo atrás (cerca de um mês, eu acho) e depois desabilitei a extensão. Eu não estou vendo isso nas Ferramentas, então espero que eu esteja bem.
Naomi
3

em Ferramentas >> Gerenciador de Pacotes NuGet >> Gerenciar pacote para atualização da solução Newtonsoft.Json de todas as soluções para a versão mais recente

Goda Kotb
fonte
2

se você estiver trabalhando com algum tipo de subversão: exclua o projeto e faça o download novamente, funcionou para mim: S

ch2o
fonte
Caminho mais longo, mas eu tive que fazer isso como nenhuma outra solução funcionou para mim
Mike Resolí
2

Eu tive o mesmo problema em um projeto de teste que tinha referência a um projeto MVC 5. Isso aconteceu depois da fusão com um projeto MVC 5. Corrigi-o instalando atualizações do Visual studio 2012, conforme explicado aqui na resposta de Andre.

  • No seu estúdio visual, vá para
    1. Ferramentas> Extensões e atualizações
    2. Selecione "Atualizações" na lista de acordeões à esquerda.
    3. Selecione "Atualizações do produto".
    4. Atualize para a versão mais recente
Michael Kassa
fonte
Embora esse link possa responder à pergunta, é melhor incluir aqui as partes essenciais da resposta e fornecer o link para referência. As respostas somente de link podem se tornar inválidas se a página vinculada for alterada
abarisone 27/03
Meu problema foi corrigido com esta solução, obrigado! Eu tinha a versão 8.0.1 instalada e não funcionou até que eu atualizei para a atualização 5 do VS2013 #
Devin Prejean
2

Eu não sei por que, mas no meu caso, mesmo que eu remova a pasta bin do projeto, quando o construo copia a versão antiga do newtonsoft.json, copiei a dll da nova versão da pasta packages e ela resolve por enquanto.

mesut
fonte
Eu tive uma questão semelhante. Na minha solução, eu tenho um projeto de teste. O projeto de teste estava recebendo a versão 9 na lixeira, mas o projeto que eu estava testando tinha a versão 12. Copiei a versão 12 do projeto na pasta bin do teste para a pasta bin do teste.
Josh Jay
2

Em alguns casos, se você excluir suas pastas Bine Obj, resolverá esse problema.

Ivan Ruski
fonte
2

Tudo bem, então acho que o melhor a fazer é adicionar minha resposta aqui a esta longa lista, em vez de criar uma pergunta duplicada ...

Se você está obtendo isso em 2019, usando o .NET Core 3.0 (visualização no momento), a solução é garantir que todos os projetos tenham como alvo a mesma versão do .NET Core (no meu caso 3.0). Eu acho que eu tinha um projeto na solução direcionada para 2.1 e o restante era 2.2, então eu provavelmente poderia ter continuado com 2.2 ...

Eu nem tenho o Newtonsoft.Json instalado em nenhum dos projetos e, naturalmente, adicioná-lo a eles não resolveu o problema.

Se você possui bibliotecas de classes .NET Standard ou w / e em sua solução, elas não precisam estar na mesma versão, embora provavelmente devam ser as mais recentes possíveis. Por exemplo, minhas bibliotecas de classes do .NET Standard estão no 2.2, pois ainda não existe um .NET Standard 3.0.

jspinella
fonte
1

Nenhuma das respostas, incluindo a marcada, não funcionou para mim.

A solução era muito mais simples. Eu removi as referências da minha camada BUS. Em seguida, excluiu as dlls do projeto (para garantir que ele se foi) e depois reinstalou o JSON.NET dos pacotes de nuget. E a parte complicada foi "desligar e ligar novamente".

Acabei de reiniciar o visual studio e lá funcionou!

Portanto, se você tentar todo o possível e ainda não conseguir resolver o problema, tente ativar e desativar o visual studio novamente, isso pode ajudar.

Zafer Sernikli
fonte
2
Eu acho que Simple era sarcasmo.
Worthy7
1

Se nenhuma dessas obras, verifique esta resposta:

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

( TL; DR : remova o espaço para nome xml da configurationmarca no seu arquivo de configuração. Caso contrário, os redirecionamentos de ligação serão ignorados)

Latorre alemão
fonte
1

Eu o resolvi removendo a versão inferior do Newtonsoft.json.dll na pasta bin e adicionei o Newtonsoft.json.dll V6.0.0.0 e removi os seguintes elementos web.config

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

Eu tive o mesmo problema com o dotnet core e consegui corrigi-lo limpando o cache do NuGet.

Abra o PowerShell e digite o seguinte comando.

dotnet nuget locals all --clear

Então fechei o Visual Studio, abri-o novamente e digitei o seguinte comando no Console do Gerenciador de Pacotes:

Update-Package

O NuGet agora deve restaurar todos os pacotes e exibir novamente o cache de nuget.

Depois disso, fui capaz de criar e iniciar meu webapi do dotnet core em um contêiner Linux.

datoml
fonte
1

a solução que resolveu meu problema para isso é

goto reference-> clique com o botão direito do mouse em Newtonsoft.json - goto properties e verifique a versão

esta mesma versão deve estar em

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

Passos fáceis. (1) Execute "update-package Newtonsoft.Json -reinstall" no gerenciador de pacotes.

(2) Exclua sua lixeira ativando a exibição dos arquivos ocultos e a pasta da lixeira.

(3) Feche o seu estúdio visual e abra-o novamente.

(4) Agora execute seu projeto novamente. Eu acredito que deveria estar ok

Odeyinka Olubunmi
fonte
0

Eu encontrei esse problema porque tinha: o projeto A (um desktop .exe) se refere ao projeto B (um .dll portátil). A & B tinha versões diferentes do JSON.Net e, portanto, houve um conflito no carregador. Depois que eu fiz todas as versões do JSON.net iguais, funcionou. (Isto é, de fato, o que algumas das soluções acima estão fazendo - só estou explicando por que funciona)

Mike S
fonte
0

Eu lutei com isso recentemente com um projeto mais antigo.

Eu consegui rastrear o problema depois de verificar qual versão da dll estava realmente na pasta bin.

Eu tinha um script pós-compilação que copiava assemblies dependentes de uma pasta de biblioteca dll para a pasta bin. Uma configuração comum dos dias anteriores ao nuget.

Então, toda vez que eu construí o script pós-construção, substitui a versão correta do Json.net pela versão mais antiga

Fredrik Stolpe
fonte
0

Eu tinha exatamente o mesmo problema e a biblioteca padrão do Visual Studio 13 para mim era 4,5, então eu tenho duas soluções: uma é tirar a referência a isso no arquivo webconfig. Esse é o último recurso e funciona.

A mensagem de erro informa que há um problema neste local /Projects/foo/bar/bin/Newtonsoft.Json.DLL. onde está a DLL! Uma verificação básica da propriedade me disse que era 4.5.0.0 ou semelhante, então mudei o webconfig para procurar até 4.5 e usar 4.5.

Mcole1976
fonte
0

Nenhuma dessas opções funcionou para mim, no final foi;

Teste> Configurações de teste> * .testrunconfig

Eu tive que adicionar uma nova linha

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

Verifique se o caminho e a versão estão corretos para sua instalação.

Daniel Haselden
fonte
0

Eu tive o mesmo problema. Criei um projeto de API da Web e atualizei-o de .net 4.5.1 para .net 4.6.1. O fechamento do IDE, a interrupção do IIS e o conteúdo de C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Arquivos temporários do ASP.NET \ dir corrigiram o problema.

HTH

CaffeineDrivenDevelopment
fonte
0

Esse problema não foi resolvido para mim atualizando os Pacotes NuGet ou executando uma "Limpeza" no projeto. Foi resolvido limpando a pasta "obj" manualmente.

Alexander P. Brown
fonte
0

Aqui está minha solução para esse problema, verifique se o número da versão em appconfig ou packageconfig é igual à versão de referência em suas referências. Veja aqui


fonte
0

No meu caso, a mensagem de erro foi " versão 6.0.0 ", mas esta versão não está disponível para instalação, então instalei a " versão 6.0.1 " no meu projeto e resolvi o meu problema.

install-package Newtonsoft.Json -Version 6.0.1 -Project MyProjectX
Fabricio Leite
fonte