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?

MLowijs
quelle

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
Bart Beyers
quelle
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

Krise
quelle
-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
        }
Eyal
quelle
-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.

Ennosuke
quelle
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