ASP.NET MVC 4'te hata ayıklama modunda paketlemeyi ve küçültmeyi etkinleştirin


112

Bununla ilgili başka soru bulamadığıma inanamıyorum, ancak: hata ayıklama modunda paketlemeyi nasıl etkinleştirebilirim ? Sürüm modu için nasıl etkinleştirildiğini biliyorum, ancak hata ayıklama modunda paketlemeyi etkinleştirmenin bir yolunu bulamıyorum.

Bu mümkün mü yoksa bir şey mi kaçırıyorum?

Yanıtlar:


214

Bunu ekleyerek etkinleştirebilirsiniz

BundleTable.EnableOptimizations = true;

RegisterBundles yönteminizde (App_Start klasöründeki BundleConfig sınıfı).

Daha fazla bilgi için http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification kontrol edin

Ayrıca web.config dosyanızı da değiştirebilirsiniz:

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

Ancak bu, hata ayıklama modunu tamamen devre dışı bırakır, bu nedenle ilk seçeneği öneririm.

Son olarak, her iki dünyanın da en iyisini elde etmek için #if derleyici yönergesini şu şekilde kullanın:

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

4
Bunu bir adım daha ileri götürür ve web.config'inize (veya en azından bir AppSetting girişine) özel bir yapılandırma bölümü eklerim. Bu şekilde, yeniden oluşturma yapmadan optimizasyonları seçerek etkinleştirebilir / devre dışı bırakabilirsiniz.
Joe the Coder

1
veya #if DEBUG& #if !DEBUGön derleyici ifadelerini kullan
Liam

Ayrıca, bunun debug="true"yapılandırmayı geçersiz kıldığını da unutmayın, bu nedenle bu değeri kodlarsanız optimizasyonlar her zaman etkinleştirilir veya devre dışı bırakılır
Liam

1
Veya "ayrıntılı" if (HttpContext.Current.IsDebuggingEnabled) { BundleTable.EnableOptimizations = false; } else { BundleTable.EnableOptimizations = true; }
MVC'yi

web yapılandırma seçeneğini beğendiyseniz, yapılandırma başına birden çok web yapılandırması da kurabilirsiniz, böylece hata ayıklama web yapılandırması doğru olur ve yayınlama yanlış olur docs.microsoft.com/en-us/aspnet/web-forms/overview/deployment/…
Matthew Ellison

11

eklemek BundleTable.EnableOptimizations = true;içinde Application_Start()yöntemine Global.asaxdosyası


-2

Global.asax'ta ekle 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

Resmi MS sitesi bu mümkün değil ayıklama ederken devletler etkinleştirmek için. Sanırım nedeni, devre dışı bırakıldığında hata ayıklamanın daha kolay olmasıdır. Uygulamanız üzerindeki Etkisini test etmek istiyorsanız <compilation debug="true" />, Web.config dosyasında ayarlamanız gerekir.

@Hebe: MS sayfasını alıntılamak için

JavaScript dosyaları paketlenmemiş veya küçültülmemiş olduğundan, bir geliştirme ortamında (Web.config dosyasındaki derleme Öğesinin debug = "true" olarak ayarlandığı) JavaScript'inizde hata ayıklamak kolaydır.


Benim durumumda, yalnızca arka uç C # kodunda hata ayıklamak istedim ve uygulamamızın kurulum şekli nedeniyle, tüm stil sayfalarının ve komut dosyalarının düzgün şekilde yüklenmesi için çalışmak üzere paketlemeye ihtiyacımız var.
MLowijs

3
@Ennosuke - Hata ayıklamak daha kolay olsa da, bazen küçültme işleminin neden olduğu, küçültülmüş komut dosyalarını yerel olarak çalıştırabilmenizi gerektiren Javascript hataları olabilir.
Joe the Coder
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.