ASP.NET MVC 4 में डिबग मोड में बंडलिंग और मिनिमाइज़ेशन सक्षम करें


112

मुझे विश्वास नहीं हो रहा है कि मैं इस बारे में अन्य प्रश्न नहीं खोज सकता, लेकिन: कोई डिबग मोड में कैसे सक्षम हो सकता है? मुझे पता है कि यह रिलीज़ मोड के लिए कैसे सक्षम है, लेकिन डिबग मोड में मुझे बंडलिंग को सक्षम करने का तरीका नहीं मिल रहा है।

क्या यह भी संभव है या मुझे कुछ याद आ रहा है?

जवाबों:


214

आप इसे जोड़कर सक्षम कर सकते हैं

BundleTable.EnableOptimizations = true;

अपने RegisterBundles विधि में (App_Start फ़ोल्डर में बंडलकॉन्फ़िग क्लास)।

जाँच http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification अधिक जानकारी के लिए

आप अपना web.config भी बदल सकते हैं:

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

लेकिन यह डिबग मोड को पूरी तरह से अक्षम कर देगा इसलिए मैं पहला विकल्प सुझाऊंगा।

अंत में, दोनों दुनिया का सर्वश्रेष्ठ पाने के लिए, #if कंपाइलर निर्देश का उपयोग इस तरह करें:

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

4
मैं इसे एक कदम आगे ले जाऊंगा, और अपने web.config (या कम से कम, एक AppSetting प्रविष्टि) में एक कस्टम कॉन्फ़िगरेशन अनुभाग जोड़ूंगा। इस तरह, आप चुनिंदा पुनर्निर्माणों को किए बिना अनुकूलन को सक्षम / अक्षम कर सकते हैं।
जो कोडर

1
या उपयोग #if DEBUGऔर #if !DEBUGprecompiler बयान
Liam

यह भी ध्यान रखें कि यह कॉन्फिगरेशन को ओवरराइड करता है debug="true", इसलिए यदि आप इस मान को हार्डकोड करते हैं तो ऑप्टिमाइज़ेशन हमेशा सक्षम या अक्षम होते हैं
Liam

1
या " if (HttpContext.Current.IsDebuggingEnabled) { BundleTable.EnableOptimizations = false; } else { BundleTable.EnableOptimizations = true; }
क्रिया

यदि आप वेब config विकल्प पसंद आप भी सेटअप कई वेब कॉन्फ़िगरेशन विन्यास प्रति डिबग वेब config सच होगा तो कर सकते हैं और रिहाई झूठी होगा docs.microsoft.com/en-us/aspnet/web-forms/overview/deployment/...
मैथ्यू एलिसन

11

फ़ाइल की विधि BundleTable.EnableOptimizations = true;में जोड़ें Application_Start()Global.asax


-2

Global.asax में जोड़ें 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

आधिकारिक एमएस साइट राज्यों जबकि डिबगिंग यह संभव नहीं है इसे सक्षम करने के। मुझे लगता है कि इसका कारण यह है कि निष्क्रिय होने के दौरान डिबग करना आसान है। यदि आप अपने अनुप्रयोग पर प्रभाव का परीक्षण करना चाहते हैं तो आपको <compilation debug="true" />Web.config में सेट करना होगा

@Hebe: एमएस पेज को कोट करने के लिए

अपने जावास्क्रिप्ट को एक विकास के माहौल में डिबग करना आसान है (जहां Web.config फ़ाइल में संकलन तत्व डीबग = "सही" पर सेट है) क्योंकि जावास्क्रिप्ट फ़ाइलों को बंडल या माइनिफ़ाइड नहीं किया गया है।


मेरे मामले में, मैं केवल बैकएंड C # कोड को डीबग करना चाहता था, और जिस तरह से हमारे आवेदन को सेट किया गया है, उसके कारण हमें सभी स्टाइलशीट और स्क्रिप्ट को ठीक से लोड करने के लिए काम करने के लिए बंडल की आवश्यकता है।
MLowijs

3
@ इन्नोसुके - हालांकि यह डिबग करना आसान हो सकता है, कभी-कभी मिनिसिफिकेशन प्रक्रिया के कारण जावास्क्रिप्ट बग्स होते हैं जिनकी आपको स्थानीय स्तर पर मिनिफाइज्ड स्क्रिप्ट चलाने में सक्षम होना चाहिए।
जो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.