Як додати BundleConfig.cs до свого проекту?


96

У мене є проект ASP.Net MVC , і я хочу здійснити пакетування, але все , що я можу знайти в Інтернеті , направляє мене , щоб відкрити BundleConfig.csв App_Start- однак цей файл не існує в моєму проекті. У мене є тільки три файли в цій папці: FilterConfig, RouteConfigі WebApiConfig.

Конфігурація пакета не була створена під час створення рішення (IIRC на початку був порожнім проектом ASP.NET MVC).

Здається, це повинно бути дуже просто, але я просто не можу зрозуміти.

PS Щоб лише пояснити тим, хто не читає уважно, це для програми MVC4 / .Net 4.5, створеної з нуля. Рішення позначено нижче.


Ви не можете його знайти, оскільки це включено лише до шаблонів проектів ASP.NET 4.5. Я припускаю, що ви використовуєте попередню версію ASP.NET.
Джейсон Роелл,


2
@Liam Nope. Як чітко зазначено у питанні, це стосується програми, створеної заново, а не перетвореної з MVC3. Це також досить ясно, як додати файл BundleConfig.cs, а не як додати посилання на System.Web.Optimization (те, що абсолютно не потрібно в сценарії цього запитання). Я повинен припустити, що ви намагалися прокоментувати зовсім інше питання.
Маверік

@Liam - насправді, я бачу, можливо, вас, можливо, спантеличила відповідь, яка включає крок "додати пакет nuget Microsoft.AspNet.Web.Optimization до вашого веб-проекту", який не був частиною вирішення вищезазначеної проблеми. Рішенням було додавання файлу BundleConfig.cs. Я це сказав у коментарі до відповіді ... але цей коментар (і всі інші щодо відповіді), схоже, зник.
Maverick

Відповіді:


167

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-Converted-to-4


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/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.