c# .net asp.net-mvc-4 dll webgrease

c# - No se pudo cargar el archivo o ensamblado ''WebGrease, Version=1.5.1.25624, Culture=neutral, PublicKeyToken=31bf3856ad364e35'' o una de sus dependencias



.net asp.net-mvc-4 (15)

Tengo un proyecto de API web MVC4. mientras ejecutas el proyecto de servicio recibo un error

No se pudo cargar el archivo o ensamblado ''WebGrease, Version = 1.5.1.25624, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'' o una de sus dependencias. El sistema no puede encontrar el archivo especificado.

He agregado el archivo WebGrease.dll y sigue apareciendo su error

y probado con cambiar web.config

<bindingRedirect oldVersion="0.0.0.0-1.3.0.0"/>"

y

<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />

por favor, dame lo que me falta.


¿Has probado a través de NuGet?

Install-Package WebGrease -Version 1.5.1

o

Install-Package WebGrease -Version 1.5.2


Alreasy resolvió este error. La situación era más simple de lo que pensaba. Cuando instala desde la nueva versión de Nuget de System.Web.Optimization, hace referencia a

// Referencias: WebGrease, Versión = 1.5.1.25624, Culture = neutral, PublicKeyToken = 31bf3856ad364e35

Al mismo tiempo tengo WebGrease versión 1.5.2.14234. Ejecutando proyecto, tenemos este error: No se pudo cargar el archivo o ensamblado ''WebGrease, Version = 1.5.1.25624

Entonces, trato de verificar esta versión en nuget y me sorprendió que no fuera así ... pero cuando creo un nuevo proyecto con VS, lo tengo. Para hackear este error, intento instalarlo en GAC ... pero gac me dice que esta lib no está suscrita. La degradación a System.Web.Optimization Version = 1.1.0.0, donde la referencia es:

// Referencias: WebGrease, Versión = 1.3.0.0, Cultura = neutral, PublicKeyToken = 31bf3856ad364e35

y 1.3.0.0 está fuertemente suscrito - me ayudó. Funciona. Después de actualizar webgrease, lo tengo Version = 1.6.5135.21930 y funcionó perfectamente.

En conclusión, tengo una opinión, que este error (no se pudo cargar el archivo o ensamblado ''WebGrease, Version = 1.5.1.25624) fue debido a que System.Web.Optimization lib se hace referencia a la versión no suscrita de webgrease dll.


Como no pude desinstalar utilizando la consola del gestor de paquetes, fui directamente a packages.config y comencé a comentar la versión anterior.


Cuando redirigir webgrease asegúrese de que no tiene un atributo applyTo en su elemento assemblyBinding . Para mí lo eliminé por completo.


El problema que observé coincidía estrechamente con lo que Jidheesh Rajan mencionaba. Sin embargo, actualizar el paquete desde el administrador de paquetes Nuget (sin especificar la versión) no solucionó el problema. Esto es lo que tuve que hacer para solucionar el problema. (Esencialmente, explícitamente actualicé WebGrease a la versión 1.6)

Desde la consola del administrador de paquetes en Visual Studio, actualice explícitamente WebGrease a la versión 1.6. aquí está el comando.

Install-Package WebGrease -Version 1.6

La salida debe ser

Removing ''WebGrease 1.5.2'' from {project name}

Agregar ''WebGrease 1.6.0'' a {nombre del proyecto} Se agregó con éxito ''WebGrease 1.6.0'' a {nombre del proyecto} Desinstalar ''WebGrease 1.5.2''. Se desinstaló correctamente ''WebGrease 1.5.2''.

Esto terminó actualizando web.config con

assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" / bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"

Esto también resultó en la eliminación de una línea del archivo csproj.

<WebGreaseLibPath>../packages/WebGrease.1.5.2/lib</WebGreaseLibPath>

y una actualización en este nodo en el archivo csproj

<Reference Include="WebGrease, Version=1.5.2.14234, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <HintPath>../packages/WebGrease.1.5.2/lib/WebGrease.dll</HintPath> <SpecificVersion>False</SpecificVersion> <Private>True</Private> </Reference>

a esto

<Reference Include="WebGrease, Version=1.6.5135.21930, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <HintPath>../packages/WebGrease.1.6.0/lib/WebGrease.dll</HintPath> <SpecificVersion>False</SpecificVersion> <Private>True</Private> </Reference>

Tenga en cuenta que no tuve un problema en mi máquina local, solo en un servidor web de escenario. Quería hacer mi mejor esfuerzo para resolver el problema sin actualizar el paquete, pero esta era la única solución que tenía.


Este error se debe a que Microsoft.AspNet.Web.Optimization 1.1.3 referencia interna a WebGrease 1.5.1.25624 aunque el paquete Nuget, en sí mismo, dependa de WebGrease 1.5.2.14234 . Alguien claramente cometió un error al crear el paquete Nuget.

Para solucionar esto, agregue este enlace de ensamblaje en su Web.Config .

<dependentAssembly> <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.5.1.25624" newVersion="1.5.2.14234" /> </dependentAssembly>


Este problema también puede surgir si no implementa el archivo Web.config en el servidor web.


Esto es lo que hice para evitarlo,

  1. Guardé una copia del archivo Web.config de mi actual (proyecto dañado) en "Corrupted-Web.Config". y cierre la solución del proyecto.
  2. Creé una nueva aplicación con el mismo tipo de proyecto mi proyecto. lo llamó ProjTemp.
  3. Guarde y ejecute "PorjTemp", luego guarde una copia de Web.Config en "OrigTemp_Web.config"
  4. Cierre los archivos Web.config.
  5. En "ProjTemp", abra Herramientas -> "Administrador de paquetes NuGet" -> "Administrar paquetes NuGet para soluciones" ---> Seleccione Actualizar todos los paquetes instalados relacionados. 6 Ahora abra el archivo Web.config recién actualizado. Copie el get the info from the Updated "" Starting from "

<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> --- Copy this section to replace in the corrupted file.--- </assemblyBinding> </runtime>

  1. Guarde su proyecto. Reconstruir y ejecutar. Espero que esto ayude! ....

Aquí está el corregido, por ejemplo, VS2015.

<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" /> <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="WebGrease" culture="neutral" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" /> <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" / </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.Owin" culture="neutral" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" / </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.Owin.Security.OAuth" culture="neutral" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.Owin.Security.Cookies" culture="neutral" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.Owin.Security" culture="neutral" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" /> </dependentAssembly> </assemblyBinding> </runtime>

eso es lo que hice para solucionarlo, Solution on Github Sami, Oweis 4 Computer


Las otras respuestas no resolvieron esto para mí. Estamos agregando un proyecto de MVC 5 API más nuevo y no estaba jugando bien con las antiguas API de MVC 2. Después de ejecutar las actualizaciones del paquete recibí el error mencionado. La resolución para mí fue eliminar las referencias de WebGrease agregadas por NuGet en el web.config de los proyectos ofensivos.

Para resolver: abra el archivo web.config del proyecto lanzando la excepción y elimine o comente la dependencia agregada para WebGrease.


Para mí, ninguno de los escenarios anteriores funcionó.

Después de intentar durante dos días, finalmente encontré la solución.

Lo que hice fue, desinstalé Microsoft.AspNet.Web.Optimization y WebGrease ambos.

Sabía que este ensamblaje de optimización se refiere internamente a WebGrease 1.5.1. Así que elegí una versión de optimización que no se refiere a WebGrease 1.5.1.

Ejecuté los siguientes comandos para hacer que todo funcione.

Uninstall-Package Microsoft.AspNet.Web.Optimization Uninstall-Package WebGrease Install-Package Microsoft.AspNet.Web.Optimization -Version 1.1.0

Espero poder ser una buena ayuda para alguien para quien la solución anterior no funciona.

¡Aclamaciones!


Probé muchas cosas, pero esto funcionó para mí, a veces, los problemas de ensamblaje de los desengrasadores web, a veces, los problemas de ensamblado Web.Optimization. Esto funcionó para mí con Microsoft.AspNet.Web.Optimization 1.1.3

Update-Package WebGrease -Version 1.6


Sé que es un poco tarde para el OP, pero me encontré con el mismo problema al probar el paquete Bootstrap 3 para MVC 4 NuGet, en mi caso tenía algo que ver con el paquete Microsoft.AspNet.Web.Optimization , y logré encuentra una solución simple

Intente ejecutar los siguientes comandos en la consola del administrador de paquetes:

Install-Package Microsoft.AspNet.Web.Optimization Update-Package WebGrease Uninstall-Package Microsoft.AspNet.Web.Optimization Uninstall-Package WebGrease Install-Package Microsoft.AspNet.Web.Optimization Update-Package WebGrease

Las primeras dos líneas no tuvieron ningún efecto para mí ya que esos paquetes ya estaban instalados y actualizados por Bootstrap 3 para el paquete MVC 4 , pero los ejecuté de todos modos y luego todo se compiló y ejecutó muy bien.


Tuve este problema durante una implementación.

Copié WebGrease.dll a la producción, pero olvidé actualizar el archivo Web.Config también.

<configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration>


Usé "Install-Package Microsoft.AspNet.Web.Optimization" (versión actual es 1.1.3) para starup web-project , que no estaba seleccionado en la consola NuGet de forma predeterminada.

Pero NuGet ha creado un nuevo archivo app.config aunque se espera que se actualice web.config.

Para mí, funcionó mover el elemento WebGrease dependentAssembly de app.config a web.config ''s <runtime><assemblyBinding>...</assemblyBinding></runtime> .


Viejo pero valioso...

Estaba trabajando en un proyecto de MVC 5 en Visual Studio 2013, y tuve el mismo problema. Estábamos usando Visual SVN para el control de versiones y yo era el único en mi equipo que tenía este problema.

Lo único que funcionó para mí fue esto:

  1. Desinstalar Microsoft.AspNet.Web.Optimization
  2. En el símbolo del sistema de Nuget, ejecute: install-package Microsoft.AspNet.Web.Optimization -Version 1.0.0

Esto instalará una versión anterior de Web.Optimization. El proyecto inicialmente estaba haciendo referencia a la versión 1.1.0. El problema no es con WebGrease, sino con System.Web.Optimization.dll que hace referencia a una versión antigua e inexistente de WebGrease.

Cuando ejecuté el proyecto, funcionó, pero quería usar la misma versión del paquete que el resto del equipo. Entonces, traté de actualizar, pero ... el error volvió ...

Después de esto, eliminé el proyecto (nuevamente) y lo retomé del SVN. Para mi sorpresa, comenzó a funcionar ... La cuestión es que había borrado el proyecto por completo y lo había tomado del SVN varias veces antes de esto. Incluso tomé los dlls de un colega porque pensé que tal vez estoy obteniendo archivos corruptos de NuGet, pero fue en vano.

Espero que esto ayude a alguien, algún día ... con Visual Studio 2016 y MVC 8 :)