Как мне добавить BundleConfig.cs в мой проект?

96

У меня есть проект ASP.Net MVC , и я хочу осуществить пакетирование, но все , что я могу найти в Интернете , направляет меня , чтобы открыть BundleConfig.csв App_Start- однако этот файл не существует в моем проекте. У меня есть только три файла в этой папке: FilterConfig, RouteConfigи WebApiConfig.

Конфигурация пакета не была сгенерирована, когда я создавал решение (IIRC вначале это был пустой проект ASP.NET MVC).

Кажется, что это должно быть очень легко сделать, но я просто не могу этого понять.

PS Просто чтобы прояснить для тех, кто не читает внимательно, это для приложения MVC4 / .Net 4.5, созданного с нуля. Решение отмечено ниже.

Maverick
источник
Вы не можете найти его, потому что он включен только в шаблоны проектов ASP.NET 4.5. Я предполагаю, что вы используете более раннюю версию ASP.NET.
Джейсон Роэлл
2
@ Лиам Нет. Как четко указано в вопросе, это касается приложения, созданного заново, а не преобразованного из MVC3. Также довольно ясно, как добавить файл BundleConfig.cs, а не как добавить ссылку на System.Web.Optimization (что-то, что совершенно не нужно в сценарии этого вопроса). Я предполагаю, что вы пытались прокомментировать совершенно другой вопрос.
Maverick
@Liam - на самом деле, я вижу, возможно, вы были сбиты с толку ответом, который включает в себя шаг «добавить пакет nuget Microsoft.AspNet.Web.Optimization в ваш веб-проект», который не был частью решения вышеуказанной проблемы. Решением было добавление файла BundleConfig.cs. Я сказал это в комментарии к ответу ... но этот комментарий (и все другие комментарии к ответу), похоже, исчез.
Maverick

Ответы:

168

BundleConfigэто не что иное, как конфигурация пакета, перенесенная в отдельный файл. Раньше он был частью кода запуска приложения (фильтры, пакеты, маршруты настраивались в одном классе)

Чтобы добавить этот файл, сначала вам нужно добавить Microsoft.AspNet.Web.Optimizationпакет nuget в свой веб-проект:

Install-Package Microsoft.AspNet.Web.Optimization

Затем в папке App_Start создайте новый файл cs с именем BundleConfig.cs. Вот что у меня в шахте (ASP.NET MVC 5, но он должен работать с 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"));
        }
    }
}

Затем измените свой Global.asax и добавьте вызов RegisterBundles()в Application_Start():

using System.Web.Optimization;

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

Тесно связанный вопрос: как добавить ссылку на System.Web.Optimization для приложения MVC-3-convert-to-4

vmg
источник
2
nuget должен добавить шаблонную версию этого.
niico
1

Если вы используете «MVC 5», вы можете не увидеть файл, и вам следует выполнить следующие действия: http://www.techjunkieblog.com/2015/05/aspnet-mvc-empty-project-adding.html

Если вы используете «ASP.NET 5», он прекратил использование «связывания и минификации», вместо этого он был заменен на gulp, bower и npm. Дополнительную информацию см. Https://jeffreyfritz.com/2015/05/where-did-my-asp-net-bundles-go-in-asp-net-5/

Сезар Альварадо Диас
источник