FileLoadException foi manipulado pelo código do usuário

Estou configurando a API para meu aplicativo MVC-4 e quando descomentei esta linha em Globals.asax.cs:

WebApiConfig.Register(GlobalConfiguration.Configuration); 

Recebi esta exceção quando iniciei o backup do meu projeto:

 An exception of type 'System.IO.FileLoadException' occurred in mscorlib.dll but was not handled in user code Additional information: Could not load file or assembly 'Newtonsoft.Json, Version=4.5.0.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) 

O que devo fazer?


Atualização 1 (screenshots)

Pelo que sei, o JSON.Net parece estar instalado corretamente.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui


Atualização 2

O JSON.Net parece funcionar quando as rotas da API são comentadas no Globals.Asax. Isso não gera erros:

 public ActionResult Index() { var foo = Newtonsoft.Json.JsonSerializer.Create(); return View(); } 

O Visual Studio só reclama quando esta linha não está comentada:

 WebApiConfig.Register(GlobalConfiguration.Configuration); 

Isso também aconteceu comigo hoje. Parece que houve uma atualização para o json.net (agora versão 6.0.3), fazendo com que o nuget baixasse a versão mais recente após a compilation. No entanto, referências a bibliotecas antigas do json.net podem não ser atualizadas quando houver depencies para outras libs.

Solução: abra manualmente os pacotes gerenciados do nuget para a janela de solução e desinstale a (s) versão (ões) antiga (s) do json.net. Em seguida, pegue a versão mais recente e instale todos os projetos necessários. Isso corrigiu o erro exato que você tinha para mim …

– editar –
Ok, descobri que esta solução funcionou para mim localmente, mas remotamente isso não resolveu meus problemas. Parece que há algumas dependencies antigas de outras bibliotecas que fazem referência à versão 4.5.0.0 do json.net. Mais tópicos em Stackoverflow.com fornecem a seguinte solução.

Adicione este redirecionamento de binding de assembly ao seu arquivo web.config :

           

Muito provavelmente Newtonsoft.Json DLL não está implementado corretamente.

Verifique se você tem a DLL Newtonsoft.Json na sua pasta bin (IIS / project).
Como alternativa, você também pode instalar essa DLL no GAC se planeja usá-la em vários projetos.

Parece que você não tem o Newtonsoft.Json instalado / referenciado. A API da Web depende disso e não funciona corretamente até que você resolva essa dependência. Você pode instalá-lo via NuGet .

Simplesmente apague sua dll Newtonsoft.Json da pasta bin e abra o arquivo package.config e remova sua input Newtonsoft.Json de lá então reinstale seu Newtonsoft.Json pelo comando mas não instale uma versão mais nova se você enfrentar este problema com uma versão mais nova comando de versão

como Install-Package Newtonsoft.Json -Version 6.0.8 agora Install-Package Newtonsoft.Json -Version 7.0.1 também é aviable mas eu sugiro para você instalado versão 6.0.8 seu trabalho