Como adiciono BundleConfig.cs ao meu projeto?

96

Tenho um projeto ASP.Net MVC e quero implementar o bundling, mas tudo o que encontro na internet me direciona para abrir BundleConfig.csno App_Start- porém este arquivo não existe no meu projeto. Eu tenho apenas três arquivos nessa pasta: FilterConfig, RouteConfige WebApiConfig.

A configuração do pacote não foi gerada quando criei a solução (IIRC era um projeto ASP.NET MVC em branco no início).

Parece que isso deveria ser muito fácil de fazer, mas simplesmente não consigo descobrir.

PS Só para esclarecer a quem não está lendo com atenção, trata-se de um aplicativo MVC4 / .Net 4.5 criado do zero. A solução está marcada abaixo.

Maverick
fonte
Você não pode encontrá-lo porque ele está incluído apenas nos modelos de projeto ASP.NET 4.5. Presumo que você esteja usando uma versão anterior do ASP.NET.
Jason Roell
2
@Liam Nope. Como fica claro na pergunta, trata-se de um aplicativo criado de novo, não convertido do MVC3. Também é bastante claro como adicionar o arquivo BundleConfig.cs - não como adicionar uma referência a System.Web.Optimization (algo que é totalmente desnecessário no cenário desta questão). Devo supor que você estava tentando comentar uma questão totalmente diferente.
Maverick de
@Liam - na verdade, vejo que talvez você tenha ficado confuso com a resposta, que inclui a etapa "adicione o pacote nuget Microsoft.AspNet.Web.Optimization ao seu projeto da web", que não fazia parte da solução para o problema acima. Qual foi a solução foi adicionar o arquivo BundleConfig.cs. Eu disse isso em um comentário sobre a resposta ... mas esse comentário (e todos os outros sobre a resposta) parece ter desaparecido.
Maverick de

Respostas:

167

BundleConfignada mais é do que a configuração do pacote movida para um arquivo separado. Costumava ser parte do código de inicialização do aplicativo (filtros, pacotes, rotas costumavam ser configuradas em uma classe)

Para adicionar este arquivo, primeiro você precisa adicionar o Microsoft.AspNet.Web.Optimizationpacote nuget ao seu projeto da web:

Install-Package Microsoft.AspNet.Web.Optimization

Em seguida, na pasta App_Start, crie um novo arquivo cs chamado BundleConfig.cs. Aqui está o que tenho na minha (ASP.NET MVC 5, mas deve funcionar com 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"));
        }
    }
}

Em seguida, modifique seu Global.asax e adicione uma chamada para RegisterBundles()em Application_Start():

using System.Web.Optimization;

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

Uma pergunta intimamente relacionada: como adicionar referência ao aplicativo System.Web.Optimization para MVC-3-converted-to-4

vmg
fonte
2
nuget deve adicionar uma versão clichê disso.
niico