providers microsoft error dotnetcompilerplatform asp.net-mvc-4 asp.net-optimization

asp.net mvc 4 - microsoft - Cómo agregar una referencia a la aplicación System.Web.Optimization para MVC-3-verted-to-4



microsoft codedom providers dotnetcompilerplatform 2.0 0 (7)

Estoy tratando de usar la nueva función de agrupación en un proyecto que convertí recientemente de MVC 3 a MVC 4 beta. Requiere una línea de código en global.asax, BundleTable.Bundles.RegisterTemplateBundles(); , que requiere el using System.Web.Optimization; en la cima.

Cuando hago esto, obtengo las líneas onduladas rojas que dicen: "¿Te falta una referencia de ensamblaje?" Cuando intento agregar la referencia y hago clic en la pestaña .NET en el cuadro de diálogo, ordenar desde AZ, no veo System.Web.Optimization .

¿Cómo agrego esta referencia a mi proyecto? Gracias.


Actualice (reinstale) el paquete de nuget, puede usar el comando:

update-Package Microsoft.AspNet.Web.Optimization -reinstall


Con la versión final publicada de ASP.Net MVC 4, el enfoque es el siguiente:

  • Instale Microsoft.AspNet.Web.Optimization a través de nuget (ya que no está instalado por el marco)

    install-package Microsoft.AspNet.Web.Optimization

  • Cree el paquete en Global.asax Application_Start:

    var scripts = new ScriptBundle("~/MyBundle"); scripts.IncludeDirectory("~/Scripts/MyDirectory", "*.js"); BundleTable.Bundles.Add(scripts);

  • Agregue el espacio de nombres "System.Web.Optimization" a las "Vistas" web.config:

    <pages pageBaseType="System.Web.Mvc.WebViewPage"> <namespaces> <add namespace="System.Web.Optimization" /> </namespaces> </pages>

  • En su view.cshtml agregue una inclusión al paquete creado en el último paso:

    @Scripts.Render("~/MyBundle")

En el modo de depuración, todos los archivos de script en su directorio se procesarán individualmente; en modo de lanzamiento serán agrupados y minimizados.


El paquete Microsoft.Web.Optimization ahora está obsoleto. Con ASP.NET (MVC) 4 y superior, debe instalar Microsoft ASP.NET Web Optimization Framework:

  • Instala el paquete desde nuget :

    Install-Package Microsoft.AspNet.Web.Optimization

  • Cree y configure paquetes en App_Start / BundleConfig.cs:

    public class BundleConfig { public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/Scripts/jquery").Include( "~/Scripts/Lib/jquery/jquery-{version}.js", "~/Scripts/Lib/jquery/jquery.*", "~/Scripts/Lib/jquery/jquery-ui-{version}.js") ); bundles.Add(new ScriptBundle("~/Scripts/knockout").Include( "~/Scripts/Lib/knockout/knockout-{version}.js", "~/Scripts/Lib/knockout/knockout-deferred-updates.js") ); } }

  • Llame a la función RegisterBundles () desde Application_Start () en su global.asax.cs:

    using System.Web.Optimization; protected void Application_Start() { ... BundleConfig.RegisterBundles(BundleTable.Bundles); ... }

  • En su view.cshtml incluya el espacio de nombres de Optimización y genere los paquetes:

    @using System.Web.Optimization @Scripts.Render("~/Scripts/jquery") @Scripts.Render("~/Scripts/knockout")

Consulte http://www.asp.net/mvc/overview/performance/bundling-and-minification para obtener más información.

Actualizar
La versión 1.1.x está disponible, lea las notas de la versión: nuget


En mi caso, fue un problema de tfs, ya que tfs excluye los binarios, por lo que Nugget PM encuentra el nugget instalado y no actualiza la biblioteca Si tiene un problema similar:

  • Ir al control de código fuente
  • Desplácese hasta .. / packages / Microsoft.Web.Optimization
  • Agregar carpeta lib (desmarque excluir extensiones binarias)
  • Actualice su solución y agregue la referencia dll de la ruta

NB: la carpeta del paquete está en el mismo nivel del archivo yousolution.sln


Instálelo desde NUGet a través de Visual Studio Abra Visual Studio 2010, seleccione Herramientas-> Administrador de paquetes de la biblioteca-> Consola del Administrador de paquetes

Esto abrirá el conslve, pegar

Install-Package Microsoft.AspNet.Web.Optimization

y entra. y has terminado


Usando nuget para desinstalar System.Web.Optimization en la consola del administrador de paquetes de esta manera:

Desinstalar el paquete Microsoft.AspNet.Web.Optimization

Luego reinstalar usando:

Paquete de instalación Microsoft.AspNet.Web.Optimization

Puede resolver este problema para usted.


establecido en Global.asax application_start (en modo RELEASE, etc.):

BundleTable.EnableOptimizations = **true**;

para habilitar la minificación y cambiar a falso en el modo DEBUG para procesar todos los archivos de estilo y script individualmente