asp.net-web-api json.net portable-class-library

asp.net web api - Método no encontrado: ''Void Newtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute(Boolean)''(webapi y PCL)



asp.net-web-api json.net (2)

La causa principal del problema para mí era que tanto mi proyecto webapi como mi proyecto PCL se referían a Newtonsoft.Json.dll. Parecía haber algún tipo de condición de carrera en la compilación de Visual Studio, de modo que si el proyecto PCL fue construido al final, copiaría su versión portátil de Newtonsoft.Json.dll en el directorio / bin de mi proyecto webapi.

La solución fue simplemente ingresar a las referencias de mi proyecto PCL y desactivar "Copiar local" para Newtonsoft.Json.dll

Similar a esta pregunta , que se marcó como un duplicado (por lo que no pude responderla directamente).

Tengo un proyecto webapi, que hace referencia a un proyecto PCL. Obtuve este error de DefaultContractResolver intermitentemente.

Probé todos los pasos de solución de problemas de esa otra pregunta, en gran parte con la desinstalación y reinstalación de los paquetes nuget. No ayudó.


Otras dos cosas que pueden ayudar:

  1. Eliminación de archivos temporales de ASP.NET (que se encuentran en "C: / Windows / Microsoft.NET / Framework64 / v4.0.30319 / Archivos temporales de ASP.NET") que contienen las versiones anteriores de la dll de NewtonSoft.
  2. Extracción de la carpeta del paquete NuGet, borrado de la memoria caché del paquete NuGet ("Administrar paquetes NuGet" -> "Configuración" -> "Administrador de paquetes NuGet" -> "General" -> "Borrar memoria caché del paquete" y luego restaurar los paquetes