¿Cómo agrego BundleConfig.cs a mi proyecto?

96

Tengo un proyecto de ASP.Net MVC y quiero poner en práctica la agrupación, pero todo lo que puedo encontrar en internet me dirige a abrir BundleConfig.csen App_Start- sin embargo, este archivo no existe en mi proyecto. Tengo sólo tres archivos de esa carpeta: FilterConfig, RouteConfigy WebApiConfig.

La configuración del paquete no se generó cuando creé la solución (IIRC era un proyecto ASP.NET MVC en blanco al principio).

Parece que esto debería ser realmente fácil de hacer, pero simplemente no puedo resolverlo.

PD: Solo para aclarar a aquellos que no leen con atención, esto es para una aplicación MVC4 / .Net 4.5 creada desde cero. La solución está marcada a continuación.

Disidente
fuente
No puede encontrarlo porque solo se incluye en las plantillas de proyecto ASP.NET 4.5. Supongo que está utilizando una versión anterior de ASP.NET.
Jason Roell
2
@Liam Nope. Como se indica claramente en la pregunta, se trata de una aplicación creada de nuevo, no convertida de MVC3. También es bastante claro cómo agregar el archivo BundleConfig.cs, no cómo agregar una referencia a System.Web.Optimization (algo que es totalmente innecesario en el escenario de esta pregunta). Debo suponer que estabas tratando de comentar sobre una pregunta completamente diferente.
Maverick
@Liam: en realidad, veo que tal vez te haya confundido la respuesta, que incluye el paso "agregar el paquete nuget Microsoft.AspNet.Web.Optimization a tu proyecto web", que no formaba parte de la solución al problema anterior. Cuál fue la solución fue agregar el archivo BundleConfig.cs. Dije esto en un comentario sobre la respuesta ... pero ese comentario (y todos los demás sobre la respuesta) parecen haber desaparecido.
Maverick

Respuestas:

167

BundleConfigno es más que la configuración del paquete movida a un archivo separado. Solía ​​ser parte del código de inicio de la aplicación (filtros, paquetes, rutas que solían configurarse en una clase)

Para agregar este archivo, primero debe agregar el Microsoft.AspNet.Web.Optimizationpaquete nuget a su proyecto web:

Install-Package Microsoft.AspNet.Web.Optimization

Luego, en la carpeta App_Start, cree un nuevo archivo cs llamado BundleConfig.cs. Esto es lo que tengo en el mío (ASP.NET MVC 5, pero debería funcionar con MVC 4):

using System.Web;
using System.Web.Optimization;

namespace CodeRepository.Web
{
    public class BundleConfig
    {
        // For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862
        public static void RegisterBundles(BundleCollection bundles)
        {
            bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/jquery-{version}.js"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                        "~/Scripts/jquery.validate*"));

            // Use the development version of Modernizr to develop with and learn from. Then, when you're
            // ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
            bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                        "~/Scripts/modernizr-*"));

            bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                      "~/Scripts/bootstrap.js",
                      "~/Scripts/respond.js"));

            bundles.Add(new StyleBundle("~/Content/css").Include(
                      "~/Content/bootstrap.css",
                      "~/Content/site.css"));
        }
    }
}

Luego modifique su Global.asax y agregue una llamada a RegisterBundles()en Application_Start():

using System.Web.Optimization;

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
}

Una pregunta estrechamente relacionada: cómo agregar una referencia a System.Web.Optimization para la aplicación MVC-3-convert-to-4

vmg
fuente
2
nuget debería agregar una versión estándar de esto.
niico