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

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

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

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

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

Ответ 1

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

Ответ 2

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

Если вы используете "ASP.NET 5", он был остановлен, используя "связывание и минирование" вместо этого был заменен на gulp, bower и npm. Подробнее см. http://www.jeffreyfritz.com/2015/05/where-did-my-asp-net-bundles-go-in-asp-net-5/