2015-01-07 13 views
12

Simile a this question, contrassegnato come duplicato (quindi non è stato possibile rispondere direttamente).Metodo non trovato: 'Void Newtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute (Boolean)' (webapi e PCL)

Ho un progetto webapi, che fa riferimento a un progetto PCL. Stavo ottenendo questo errore DefaultContractResolver a intermittenza.

Avevo provato tutti i passaggi di risoluzione dei problemi da quell'altra domanda, in gran parte con la disinstallazione e la reinstallazione dei pacchetti di nuget. Non ha aiutato

risposta

39

La causa principale del problema per me era che sia il mio progetto webapi che il mio progetto PCL facevano riferimento a Newtonsoft.Json.dll. Sembrava esserci una specie di condizione di competizione nella build di Visual Studio, così che se il progetto PCL fosse stato creato per ultimo, avrebbe copiato la sua versione portatile di Newtonsoft.Json.dll nella directory \ bin del mio progetto webapi.

La soluzione era semplicemente quello di andare in riferimenti del mio progetto PCL, e spegnere "Copia locale" per Newtonsoft.Json.dll

+5

Questo funziona;.. mi sono state uccidendo Grazie – Sumant

+0

questo ha lavorato anche nel mio caso Grazie –

+1

Grazie così tanto che stavo per buttare il computer fuori dalla finestra –

-1

Due altre cose che possono aiutare:

  1. Rimozione temporanea ASP. File NET (che si trovano in "C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ File temporanei ASP.NET") contenenti vecchie versioni della DLL di NewtonSoft.
  2. Rimozione della cartella del pacchetto NuGet, rimozione della cache del pacchetto NuGet ("Gestione pacchetti NuGet" -> "Impostazioni" -> "Gestione pacchetti NuGet" -> "Generale" -> "Svuota cache pacchetto", quindi ripristino dei pacchetti
Problemi correlati