Wie füge ich BundleConfig.cs zu meinem Projekt hinzu?

96

Ich habe ein Projekt ASP.Net MVC und ich mag Bündelung implementieren, aber alles , was ich im Internet finden kann lenkt mich öffnen BundleConfig.csin App_Start- aber diese Datei nicht in meinem Projekt nicht vorhanden ist . Ich habe nur drei Dateien in diesem Ordner: FilterConfig, RouteConfigund WebApiConfig.

Die Bundle-Konfiguration wurde beim Erstellen der Lösung nicht generiert (IIRC war zu Beginn ein leeres ASP.NET MVC-Projekt).

Es scheint, dass dies wirklich einfach sein sollte, aber ich kann es einfach nicht herausfinden.

PS Nur für diejenigen, die nicht genau lesen, ist dies eine MVC4 / .Net 4.5-App, die von Grund auf neu erstellt wurde. Die Lösung ist unten markiert.

Einzelgänger
quelle
Sie können es nicht finden, da dies nur in ASP.NET 4.5-Projektvorlagen enthalten ist. Ich gehe davon aus, dass Sie eine frühere Version von ASP.NET verwenden.
Jason Roell
2
@ Liam Nope. Wie in der Frage klar angegeben , handelt es sich um eine neu erstellte App, die nicht aus MVC3 konvertiert wurde. Es ist auch ziemlich klar, wie die Datei BundleConfig.cs hinzugefügt wird - nicht wie ein Verweis auf System.Web.Optimization hinzugefügt wird (was im Szenario dieser Frage völlig unnötig ist). Ich muss davon ausgehen, dass Sie versucht haben, eine ganz andere Frage zu kommentieren.
Maverick
@Liam - ich sehe tatsächlich, dass Sie möglicherweise durch die Antwort verwirrt wurden, die den Schritt "Hinzufügen des Microsoft.AspNet.Web.Optimization-Nuget-Pakets zu Ihrem Webprojekt" enthält, der nicht Teil der Lösung des oben genannten Problems war. Die Lösung bestand darin, die Datei BundleConfig.cs hinzuzufügen. Ich habe dies in einem Kommentar zur Antwort gesagt ... aber dieser Kommentar (und alle anderen zur Antwort) scheinen verschwunden zu sein.
Maverick

Antworten:

167

BundleConfigist nichts anderes als eine Bundle-Konfiguration, die in eine separate Datei verschoben wird. Früher war es Teil des App-Startcodes (Filter, Bundles, Routen wurden früher in einer Klasse konfiguriert).

Um diese Datei hinzuzufügen, müssen Sie zuerst das Microsoft.AspNet.Web.OptimizationNuget-Paket zu Ihrem Webprojekt hinzufügen :

Install-Package Microsoft.AspNet.Web.Optimization

Erstellen Sie dann unter dem Ordner App_Start eine neue CS-Datei mit dem Namen BundleConfig.cs. Folgendes habe ich in meiner Mine (ASP.NET MVC 5, aber es sollte mit MVC 4 funktionieren):

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"));
        }
    }
}

Ändern Sie dann Ihre Global.asax und fügen Sie einen Aufruf hinzu RegisterBundles()in Application_Start():

using System.Web.Optimization;

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

Eine eng verwandte Frage: Hinzufügen eines Verweises auf die System.Web.Optimization für MVC-3-konvertierte-zu-4-App

vmg
quelle
2
Nuget sollte eine Boilerplate-Version davon hinzufügen.
Niico
1

Wenn Sie "MVC 5" verwenden, wird die Datei möglicherweise nicht angezeigt. Führen Sie die folgenden Schritte aus: http://www.techjunkieblog.com/2015/05/aspnet-mvc-empty-project-adding.html

Wenn Sie "ASP.NET 5" verwenden, wurde "Bundling and Minification" nicht mehr verwendet, sondern durch "gulp", "bower" und "npm" ersetzt. Weitere Informationen finden Sie unter https://jeffreyfritz.com/2015/05/where-did-my-asp-net-bundles-go-in-asp-net-5/

Cesar Alvarado Diaz
quelle