Aktivieren Sie die Bündelung und Minimierung im Debug-Modus in ASP.NET MVC 4


112

Ich kann nicht glauben, dass ich keine anderen Fragen dazu finden kann, aber: Wie kann man das Bündeln im Debug-Modus aktivieren ? Ich weiß, wie es für den Release-Modus aktiviert ist, aber im Debug-Modus kann ich keine Möglichkeit finden, die Bündelung zu aktivieren.

Ist das überhaupt möglich oder fehlt mir etwas?

Antworten:


214

Sie können dies aktivieren, indem Sie hinzufügen

BundleTable.EnableOptimizations = true;

in Ihrer RegisterBundles-Methode (BundleConfig-Klasse im Ordner App_Start).

Weitere Informationen finden Sie unter http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification

Sie können auch Ihre web.config ändern:

<system.web>
    <compilation debug="false" />
</system.web>

Dies würde jedoch den Debug-Modus vollständig deaktivieren, sodass ich die erste Option empfehlen würde.

Um das Beste aus beiden Welten herauszuholen, verwenden Sie die Compiler-Direktive #if wie folgt:

#if DEBUG
            BundleTable.EnableOptimizations = false;
#else
            BundleTable.EnableOptimizations = true;
#endif

4
Ich würde noch einen Schritt weiter gehen und Ihrer web.config einen benutzerdefinierten Konfigurationsabschnitt hinzufügen (oder mindestens einen AppSetting-Eintrag). Auf diese Weise können Sie Optimierungen selektiv aktivieren / deaktivieren, ohne eine Neuerstellung durchführen zu müssen.
Joe the Coder

1
oder benutze #if DEBUG& #if !DEBUGPrecompiler-Anweisungen
Liam

Denken Sie auch daran, dass dies die debug="true"Konfiguration überschreibt , sodass Optimierungen immer aktiviert oder deaktiviert sind, wenn Sie diesen Wert fest codieren
Liam

1
Oder verwenden Sie "ausführliche" MVC wieif (HttpContext.Current.IsDebuggingEnabled) { BundleTable.EnableOptimizations = false; } else { BundleTable.EnableOptimizations = true; }
Tiramonium

Wenn Ihnen die Webkonfigurationsoption gefällt, können Sie auch mehrere Webkonfigurationen pro Konfiguration einrichten, sodass das Debuggen der Webkonfiguration wahr und die Veröffentlichung falsch ist. docs.microsoft.com/en-us/aspnet/web-forms/overview/deployment/…
Matthew Ellison

11

fügen Sie BundleTable.EnableOptimizations = true;in Application_Start()Methode der Global.asaxDatei


-2

In Global.asax hinzufügen BundleConfig.RegisterBundles(BundleTable.Bundles);

 protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles); // add this
        }

-5

Die offizielle MS-Site gibt an, dass es beim Debuggen nicht möglich ist, sie zu aktivieren. Ich denke, der Grund ist, dass das Debuggen einfacher ist, wenn es deaktiviert ist. Wenn Sie die Auswirkungen auf Ihre Anwendung testen möchten, müssen Sie dies <compilation debug="true" />in der Web.config festlegen

@ Hebe: Um die MS-Seite zu zitieren

Es ist einfach, Ihr JavaScript in einer Entwicklungsumgebung zu debuggen (in der das Kompilierungselement in der Datei Web.config auf debug = "true" gesetzt ist), da die JavaScript-Dateien nicht gebündelt oder minimiert sind.


In meinem Fall wollte ich lediglich den C # -Code des Backends debuggen. Aufgrund der Art und Weise, wie unsere Anwendung eingerichtet ist, müssen wir gebündelt werden, damit alle Stylesheets und Skripte ordnungsgemäß geladen werden können.
MLowijs

3
@Ennosuke - Während das Debuggen möglicherweise einfacher ist, gibt es manchmal Javascript-Fehler, die durch den Minimierungsprozess verursacht werden und erfordern, dass Sie die minimierten Skripte lokal ausführen können.
Joe the Coder
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.