FileLoadException no fue manejado por el código de usuario

Estoy configurando la API para mi aplicación MVC-4 y cuando descomenté esta línea en Globals.asax.cs:

WebApiConfig.Register(GlobalConfiguration.Configuration); 

Recibí esta excepción cuando inicié mi copia de seguridad del proyecto:

 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) 

¿Qué tengo que hacer?


Actualización 1 (screenshots)

Por lo que puedo decir, JSON.Net parece que está instalado correctamente.

introduzca la descripción de la imagen aquí

introduzca la descripción de la imagen aquí

introduzca la descripción de la imagen aquí


Actualización 2

JSON.Net realmente parece funcionar cuando las rutas de la API se comentan en Globals.Asax. Esto no arroja ningún error:

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

Visual Studio solo se queja cuando esta línea no tiene comentarios:

 WebApiConfig.Register(GlobalConfiguration.Configuration); 

Esto también me ocurrió hoy. Parece que hubo una actualización para json.net (ahora versión 6.0.3), lo que provocó que nuget descargara la última versión después de la comstackción. Sin embargo, las referencias a las antiguas librerías de json.net pueden no actualizarse cuando hay dependencias de otras librerías.

Solución: Abra manualmente la ventana de administración de paquetes nuget para soluciones y desinstale las versiones anteriores de json.net. Luego tome la última versión e instálela para todos los proyectos necesarios. Eso solucionó el error exacto que tenías para mí …

editar
Bien, descubrí que esta solución funcionaba para mí a nivel local, pero de forma remota no resolvía mis problemas. Parece que hay algunas dependencias antiguas de otras bibliotecas que hacen referencia a la versión 4.5.0.0 de json.net. Más temas en Stackoverflow.com proporcionan la siguiente solución.

Agregue este enlace de ensamblaje a su archivo web.config :

           

Lo más probable es que la DLL de Newtonsoft.Json no esté implementada correctamente.

Asegúrese de tener el Newtonsoft.Json DLL Newtonsoft.Json en su carpeta bin (IIS / project).
Alternativamente, también puede instalar esa DLL en GAC si planea usarla en múltiples proyectos.

Parece que no tienes Newtonsoft.Json instalado / referenciado. La API web se basa en esto y no funcionará correctamente hasta que resuelva esta dependencia. Puedes instalarlo a través de NuGet .

Simplemente elimine su dll Newtonsoft.Json de la carpeta bin, luego abra el archivo package.config y elimine su entrada Newtonsoft.Json desde allí y luego reinstale su Newtonsoft.Json por comando, pero no instale una versión más reciente si enfrenta este problema con una versión más reciente. comando de versión

como Install-Package Newtonsoft.Json -Version 6.0.8 ahora Install-Package Newtonsoft.Json -Version 7.0.1 también está disponible pero le sugiero que instale la versión 6.0.8 que funciona