No se pudo cargar el archivo o conjunto ‘WebGrease’ una de sus dependencias. La definición del manifiesto del ensamblaje localizado no coincide con la referencia del ensamblaje

Este problema tiene muchas soluciones, lea todas las respuestas a continuación, también pueden ayudarlo a resolver su problema. Si encuentra una nueva forma de resolver esto, documente en su respuesta

Estoy tratando de agregar System.Web.Optimization a mi solución de formularios web ASP.NET. Agregué el marco de optimización web de Microsoft ASP.NET a través de los paquetes NuGet. Agregó Microsoft.Web.Infrastracture y WebGrease (1.5.2) a las referencias.

Sin embargo, cuando corro

 

Me sale un error de tiempo de ejecución

 Could not load file or assembly 'WebGrease, Version=1.5.1.25624, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) 

He intentado agregar assemblyBinding a la Web.Config

          

Pero sin suerte.

Noté que la configuración web de mi sitio web contiene esta línea.

   

Si lo sustituyo por

   

Entonces todo funciona y no recibo el error de ejecución. Desafortunadamente, necesito los xmlns. Otros componentes de mi proyecto dependen de ello.

¿Por qué la optimización intentaría cargar una versión anterior cuando el esquema apunta a v2.0? ¿Hay una manera de forzarlo a cargar el último o el único WebGrease.dll disponible?

¿Qué más puedo probar sin cambiar el

   ? 

¡Gracias por cualquier ayuda que pueda proporcionar!

Edición: 1) Adjuntar FusionLog Resultado. Tal vez sea de ayuda

 === Pre-bind state information === LOG: User = [USER] LOG: DisplayName = WebGrease, Version=1.5.1.25624, Culture=neutral, PublicKeyToken=31bf3856ad364e35 (Fully-specified) LOG: Appbase = file:///C:/Projects/PROJECT_NAME/trunk/www.PROJECT_NAME.com/ LOG: Initial PrivatePath = C:\Projects\PROJECT_NAME\trunk\www.PROJECT_NAME.com\bin Calling assembly : System.Web.Optimization, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35. === LOG: This bind starts in default load context. LOG: Using application configuration file: C:\Projects\PROJECT_NAME\trunk\www.PROJECT_NAME.com\web.config LOG: Using host configuration file: LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config. LOG: Post-policy reference: WebGrease, Version=1.5.1.25624, Culture=neutral, PublicKeyToken=31bf3856ad364e35 

2) Confirmado, el problema está en

  

Sin embargo, no entiendo por qué

Encontré este problema en un servidor prod, mientras que todo funcionaba bien en la máquina del desarrollador. Estas líneas ayudaron:

           

Finalmente, el problema estaba en . Esto causó que el método Render cargue un ensamblaje incorrecto de WebGrease.

Eliminar los xmlns solucionó el problema por mí.

Modifiqué mi archivo web.config para que newVersion = “1.0.0.0” coincidiera con la versión de mi archivo de referencia:

     

Por si acaso ayuda a alguien, tuve el mismo problema, pero descubrí que fue causado por un ensamblaje dependiente de WebGrease, es decir, Antlr3 . Se había agregado lo siguiente al elemento de runtime de runtime en web.config al instalarlo a través de NuGet:

      

Simplemente eliminando esto solucioné mi problema.

En mi caso, el problema resultó ser una instrucción de procesamiento XML (PI) ( ) En mi archivo web.config. Perfectamente legal XML! pero causó que este mensaje de error apareciera y me hizo buscar en todos los lugares equivocados.

Mi web.config se parecía al siguiente: tenga en cuenta el XML PI en la sección connectionStrings :

  ...    ...  ...   ...     ...   ...  

Tenga en cuenta que el XML PI Estaba en la sección connectionStrings , es decir, que no se encuentra cerca de la sección assemblyBinding , o las entradas WebGrease para WebGrease etc. (¡fueron correctas!).

Agregue el paquete System.Web.Optimization NuGet escribiendo

Install-Package Microsoft.AspNet.Web.Optimization

en la consola de Nuget Package Manager. Esto debería resolver la dependencia y permitir que VS cargue el ensamblaje de WebGrease correcto.

Tuve este mismo problema, pero fue el resultado de copiar una solución desde mi computadora de desarrollo local a una unidad en red donde almacenamos nuestros proyectos. No pude conseguir que la referencia funcionara correctamente cuando abrí la solución desde una unidad asignada y seguí recibiendo este error. La única solución temporal que encontré para mi problema específico fue abrir la solución desde su ruta UNC y no la letra de la unidad asignada.

Me encontré con el mismo problema en el sitio de formularios web .net 4.5 Los paquetes nuget de actualización simple a la última versión me ayudaron.