asp.net mvc 3 - visual - La actualización de WebGrease a la versión 1.3.0 me da error
mvc.net 5 (14)
Al actualizar WebGrease
a la versión 1.3.0
me da error:
No se pudo cargar el archivo o ensamblado ''WebGrease, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'' o una de sus dependencias. La definición del manifiesto del ensamblaje ubicado no coincide con la referencia de ensamblaje. (Excepción de HRESULT: 0x80131040)
Error de fuente:
Line 6: <title>@ViewBag.Title</title>
Line 7: @Styles.Render("~/Content/bundles/bootstrap")
Cómo resolver este error
Aquí está la respuesta que me ha funcionado, y es una combinación de algunas de las respuestas anteriores. Primero instale / desinstale / reinstale los siguientes 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
A continuación, haga una copia de los contenidos de ~ / Views / Shared / _Layout.cshtml elimine el archivo _Layout.cshtml, recíclelo y vuelva a pegar los contenidos.
esta es la solución final que me ha funcionado.
Así es como se ve mi sección de tiempo de ejecución y funciona
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.2.0.0" newVersion="1.3.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
El mismo trato que Hriju y Nathan (Desinstalar, reinstalar y actualizar), solo que en lugar de omitir el atributo newVersion
, lo guardé. Pero como WebGrease pasó de 1.1.0 a 1.3.0, no hubo necesidad de 1.2.0 (como lo hizo jenson-button-event) (Buena suerte para JB en España, por cierto).
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.3.0.0" />
¿Pedante? Tal vez, pero siempre está en los detalles, ¿verdad? Esto me lo arregló.
De todos modos, he aquí la esperanza de que lo hagan bien en la próxima actualización.
En mi caso, todos estos métodos no funcionaron. Finalmente, resuelvo este problema desinstalando Microsoft.AspNet.Web.Optimization y WebGrease Packages a través del Administrador de paquetes, luego abro mi archivo de proyecto (.csproj) en el bloc de notas y borro todas las entradas relacionadas con estos dos paquetes, lo que indica que hubo un problema. Finalmente instalo estos dos paquetes a través del gestor de paquetes nuevamente y ejecuto el proyecto. Todo el trabajo está bien ahora.
Es un problema con Microsoft.AspNet.Web.Optimization (Optimizar en el futuro).
Debe degradar WebGrease desinstalando Optimize y eliminando cualquier redirección de ensamblado WebGrease de web.config.
Luego reinstale Optimize y asegúrese de no actualizar WebGrease.
Es una solución rápida, ¡pero hizo funcionar mi construcción!
Gracias a @roadsunknown. Mi configuración se limpió después de que mi máquina host se congeló, lo que provocó que mi máquina virtual no se apagara correctamente. Para resolver esto, desinstalé Microsoft.AspNet.Web.Optimization a través de NuGet, luego tuve que eliminar la referencia a WebGrease en packages.config, y finalmente reinstalé Microsoft.AspNet.Web.Optimization a través de NuGet.
La redirección de enlace que funcionó para mí:
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.2.0.0" newVersion="1.3.0.0"/> </dependentAssembly>
</assemblyBinding>
La sutil diferencia es que no incluí esta versión (1.3.0.0) en el oldVersion
atributo oldVersion
.
¡falle el pastel!
Para solucionar esto, todo lo que hice fue Actualizar el archivo package.config (WEBMATRIX)
<packages>
<package id="Microsoft.AspNet.Web.Optimization" version="1.0.0" targetFramework="net40" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net40" />
<package id="WebGrease" version="1.3.0" targetFramework="net40" />
</packages>
¡¡¡Aclamaciones!!!
Para un proyecto de API web estoy trabajando en lo que realmente funcionó fue lo siguiente:
Abra el administrador de paquetes NuGet, haga clic en
Installed packages
y luego desinstaleMicrosoft.AspNet.Web.Optimization
.WebGrease 1.1.0
eliminaráWebGrease 1.1.0
. PresionaYes
.Ahora vuelva a instalarlo y haga clic en la pestaña En línea de NuGet y busque
Microsoft.AspNet.Web.Optimization
.
Ahora todo está funcionando como se esperaba.
Parece que tiene referencia a una versión de ensamblaje más antigua (1.0.0.0) (suponiendo que la versión actual sea 1.3.0.0). En este caso, necesita el ensamblaje redireccionado en web.config o mejor aún recompile sus binarios para usar la última versión.
Otra posibilidad si la última versión comparte la misma versión de ensamblaje que la anterior (1.0.0.0) necesita recompilar el código para usar el ensamblaje correcto y asegurarse de que se usa la copia correcta (compruebe GAC para el incorrecto, use fuslogv para investigar qué archivo exacto causó el error).
Tuve el mismo problema. Otro desarrollador actualizó el paquete WebGrease (y otros), pero algo no se sincronizó ni se verificó. Edité el archivo del paquete para eliminar las referencias al paquete existente. Luego reinstalé a través del Administrador de paquetes. Finalmente, actualicé los paquetes.
Parece que los paquetes no se instalarán ni actualizarán si el archivo packages.config no coincide con los archivos (incluidas las versiones adecuadas) en su proyecto. No se da ningún error en el Administrador de paquetes, simplemente falla al actualizar o instalar paquetes.
Tuve un problema similar, excepto que no fue un error sino una advertencia. Después de actualizar WebGrease a 1.3.0, una compilación pone la fuente de advertencia en la declaración. Después de asegurarme de que tenía el ensamblado apropiado de redirigir en mi archivo web.config, finalmente creé una nueva vista _Layout.cshtml y guardé sobre el archivo anterior con el mismo marcado de la misma forma que en el anterior (copiar / pegar). Después de eso, la advertencia desapareció.
No estoy seguro de qué se trató la advertencia, pero intente copiar el código en el archivo, pegarlo en un nuevo archivo y sobrescribir el original.
Si alguien tiene alguna idea de por qué esto funciona, soy todo oídos.
Una combinación de lo siguiente resolvió el problema para mí. Primero, ejecute los siguientes comandos en la línea de comando del Administrador de paquetes (similar a la respuesta provista por sec_goat, pero no exactamente igual):
Uninstall-Package Microsoft.AspNet.Web.Optimization
Uninstall-Package WebGrease
Install-Package Microsoft.AspNet.Web.Optimization
Update-Package WebGrease
Entonces, similar a Hriju, necesité cambiar esta línea en mi web.config:
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" />
dentro de esto:
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.3.0.0" />
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" /> </dependentAssembly>
Cambie el código superior en Web.config
por el siguiente
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.3.0.0"/> </dependentAssembly>