net mvc ihttpactionresult example ejemplo consumir asp c# visual-studio-2012 asp.net-web-api

c# - mvc - El proyecto API web de Visual Studio 2012 no se ejecutará, no puede encontrar Newtonsoft.Json



web api c# ejemplo (13)

Combiné algunas de las opciones que los otros contribuyentes de SO declararon, más una nueva.

En primer lugar, resultó que Nuget 2.1 tenía algunos problemas, y este problema se registró en un error y se solucionó en 2.2.2. Mira aquí: https://nuget.codeplex.com/workitem/3050

Entonces, hice los siguientes pasos:

  1. Versión actualizada de Nuget a 2.2.2 según el enlace
  2. Eliminé todas las referencias a Json en mi proyecto al desinstalar desde NUget (haga clic derecho en el proyecto y encuentre el paquete, y desinstale (incluso esto no lo hizo)
  3. Físicamente eliminó los archivos del paquete de la computadora. Encontré archivos de paquete aquí: //projectdir/packages/Newtonsoft.JSON
  4. Eliminado el archivo packages.config del directorio físico (// nombre del proyecto / paquetes.config)
  5. Una vez que todo esto se completó, agregué Newtonsoft nuevamente a través de Nuget, luego hice una reconstrucción, y funcionó.

Después de ejecutar una solución limpia y reconstruir, mi proyecto MVC 4 Web API deja de funcionar. No puede encontrar a Newtonsoft.Json.

Sé que MS está usando esto como el serializador JSON predeterminado ahora, pero no está en la lista de referencias para el proyecto, y no puedo agregarlo desde NuGet porque dice que ya está instalado.

¿Alguien tiene alguna idea aquí sobre lo que podría estar yendo mal?

Rastro de pila completo:

[FileNotFoundException: no se pudo cargar el archivo o ensamblado ''Newtonsoft.Json, Version = 4.5.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed'' o una de sus dependencias. El sistema no puede encontrar el archivo especificado.]
MvcWebRole1.WebApiApplication.Application_Error () en d: / Data / Source Controlled Projects / georace / georace / Server / GeoRaceServer / MvcWebRole1 / Global.asax.cs: 70

[HttpException (0x80004005): no se pudo cargar el archivo o ensamblado ''Newtonsoft.Json, Version = 4.5.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed'' o una de sus dependencias. El sistema no puede encontrar el archivo especificado.]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode (HttpContext context, aplicación HttpApplication) +12838633
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS (IntPtr appContext, HttpContext context, MethodInfo [] manejadores) +175
System.Web.HttpApplication.InitSpecial (HttpApplicationState state, MethodInfo [] handlers, IntPtr appContext, HttpContext context) +304
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance (IntPtr appContext, HttpContext context) +404
System.Web.Hosting.PipelineRuntime.InitializeApplication (IntPtr appContext) +475

[HttpException (0x80004005): no se pudo cargar el archivo o ensamblado ''Newtonsoft.Json, Version = 4.5.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed'' o una de sus dependencias. El sistema no puede encontrar el archivo especificado.]
System.Web.HttpRuntime.FirstRequestInit (HttpContext context) +12851296 System.Web.HttpRuntime.EnsureFirstRequestInit (HttpContext context) +159 System.Web.HttpRuntime.ProcessRequestNotificationPrivate (IIS7WorkerRequest wr, HttpContext context) +12679949


En mi caso, revisé el proyecto de un colega que de alguna manera cambió mi referencia de Newtonsoft.Json, así que tuve que eliminarla. Haga clic derecho en el proyecto -> Administrar paquetes NuGet. En el lado izquierdo, haga clic en "Paquetes instalados", luego seleccione Json.NET y desinstálelo. En mi caso, tuve que desinstalar otros paquetes dependientes también (Microsoft ASP.Net Web API y otros). Elija "En línea" en el lado izquierdo y busque Json.Net, vuelva a instalarlo.


Estaba teniendo la misma excepción FileNotFoundException y resulta que ya tengo la referencia a Newtonsoft.Json en mi proyecto, PERO la propiedad "Copiar local" no estaba establecida en TRUE. Simplemente ajústelo en TRUE para que el dll sea copiado al directorio de salida si este es su caso también.


Lo hice por error, y lo resolvió bien.

Después de haber comenzado un nuevo proyecto de VS 2012, utilicé NuGet para instalar Newtonsoft.JSON, ya que la versión 4.5.6 mencionada ya está instalada, y me impresionó ver que esto se había desinstalado y tenía 4.5.10 instalado.

Dulce.


Lo que causó que mi problema con Newtonsoft.json fuera ligeramente diferente. Desarrollé una aplicación para Windows desarrollada en .Net 4.5. Más tarde descubrí que el entorno del cliente solo es compatible con .Net 4.0. Copié la solución en una nueva área para preservar el trabajo de .Net 4.5 y cambié las Propiedades de la solución a Microsoft.Net 4.0. Obtuve el error de que Newtonsoft.json no se pudo encontrar y me faltaba una referencia.

Seguí los procedimientos indicados anteriormente para eliminar los paquetes.config; eliminando Newtonsoft.json; asegurando que Newtonsoft.json se eliminó del directorio / packages; luego reinstalar Newtonsoft.json desde NuGet. Pude compilar y ejecutar la aplicación con .Net 4.0

Antes de esto, el archivo packages.config mostraba que la versión de .Net elegida por Newtonsoft.json era .Net 4.5. Eliminar y agregar Newtonsoft.json ahora tiene el objetivo como .Net 4.0.


Ok, encontré un trabajo alrededor de mí mismo, publicando en caso de que alguien más sea golpeado por este error de MS. El problema es que no puede agregar una referencia NuGet ya que está incluida en los paquetes de forma predeterminada. Asi que...

  1. Abra packages.config
  2. Eliminar la entrada Newtonsoft.Json.
  3. Guardar y construir
  4. Vuelva a agregar Newtonsoft.Json de NuGet.
  5. Construir y correr

Para cualquier paquete ya instalado por NuGet que quiera volver a instalar, simplemente escriba el siguiente comando en la consola del Administrador de paquetes :

Actualización en cualquier proyecto:

Update-Package Newtonsoft.Json -Reinstall

Actualización en un proyecto específico

Update-Package Newtonsoft.Json -Reinstall -Project My.App


Para mí, lo único que solucionó este error fue agregar la sección faltante a mi archivo web.config, que obtuve de esta respuesta aquí: https://.com/a/20414714/940783

Esto es lo que necesitaba agregar:

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


Podría intentar instalar el paquete SocialAuth.Net con el indicador -IgnoreDependencies, luego instalar las dependencias manualmente y asegurarse de que solo instala la última versión de la biblioteca Json.Net.

Luego, en tiempo de ejecución, el paquete SocialAuth.Net respetaría la redirección de ensamblaje y cargaría Json.Net (v4.5) en lugar de la versión anterior.


Probé todo lo que se dijo aquí y nada funcionó. En mi caso, tenía una carpeta de ruta como esta.

  • # Proyectos / Web / App / ...

El # es la causa de mi problema. Eliminé el # y funcionó bien.


Tuve el mismo problema (en VS2012). Ninguna respuesta me ayudó. Finalmente lo resolví con esto:

1) Vaya a HERRAMIENTAS -> EXTENSIONES Y ACTUALIZACIONES aquí actualice (o instale) "NuGet Package Manager" luego vaya a "En línea" e instale "Quick add NuGet" y "NuGet References"

2) después de insttal todo en 1) en su proyecto, haga clic derecho en "Referencias" y elija "Administrar paquetes Nuget" en "Paquetes instalados", busque Json.NET. Haga clic en Desinstalar; no puede hacer esto ahora, pero le muestra lo que debe desinstalar primero (algún cliente ASP Web Api). Así que desinstala todos estos e intenta desinstalar "Json.NET" nuevamente. Ahora vaya a "En línea" e instale "Json.NET", "Bibliotecas de cliente de API WEB de ASP.NET" y "OData de cliente de API de ASP.NET WEB".

3) en Global.asax, elimine la fila "WebApiConfig.Register (GlobalConfiguration.Configuration);"

construir solución y todo debería estar bien .. Espero que esto pueda ayudar a alguien :) gl


Tuve el mismo problema en VS2012 express, y logré instalarlo desde

HERRAMIENTAS -> Administrador de paquetes NuGet -> Administrar paquetes de NuGet para la solución

Allí encontré e instalé Newtonsoft Json. No fue instalado en ninguno de los proyectos de la solución para entonces.


Verifique si tenía una referencia de "estilo antiguo" (pre nuget) a JSON.NET que apunta a una copia local desactualizada incrustada en su proyecto.

Tenía un viejo Reference/Lib/JSON.NET que estaba en mi ruta de referencia y Reference/Lib/JSON.NET prioridad.

Verifique que la página de propiedades de JSON.NET esté apuntando a la versión del paquete Nuget que se espera.

Tuve este problema en una compilación de Team Server que se implementó en vivo. Tuve que arreglar mi solución original y hacer una compilación limpia para asegurarme de que el antiguo Reference/Lib/ DLL no fuera recogido.