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.