ASP.NET MVC 4 এ ডিবাগ মোডে বান্ডিলিং এবং মিনিফিকেশন সক্ষম করুন


112

আমি বিশ্বাস করতে পারি না আমি এই সম্পর্কে অন্যান্য প্রশ্নগুলি খুঁজে পাব না , কিন্তু: কীভাবে একজন ডিবাগ মোডে বান্ডিলিং সক্ষম করে? আমি জানি এটি কীভাবে মুক্তির মোডের জন্য সক্ষম হয় তবে ডিবাগ মোডে আমি বান্ডিলিং সক্ষম করার কোনও উপায় খুঁজে পাই না।

এটি কি সম্ভব নাকি আমি কিছু মিস করছি?

উত্তর:


214

আপনি যোগ করে এটি সক্ষম করতে পারেন

BundleTable.EnableOptimizations = true;

আপনার রেজিস্টারবান্ডেল পদ্ধতিতে (অ্যাপ্লিকেশন স্টার্ট ফোল্ডারে বান্ডেলকনফিগ শ্রেণি)।

পরীক্ষা http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification আরও তথ্যের জন্য

আপনি আপনার ওয়েব.কমফিগ পরিবর্তন করতে পারেন:

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

তবে এটি সম্পূর্ণরূপে ডিবাগ মোড অক্ষম করবে তাই আমি প্রথম বিকল্পটি সুপারিশ করব।

অবশেষে, উভয় বিশ্বের সেরা পেতে, এই জন্য #if সংকলক নির্দেশিকাটি ব্যবহার করুন:

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

4
আমি এটি আরও একধাপ এগিয়ে নিয়ে যাব এবং আপনার ওয়েবকনফাইগের সাথে একটি কাস্টম কনফিগার বিভাগ যুক্ত করব (বা সর্বনিম্ন, একটি অ্যাপসেটিং এন্ট্রি)
জো কোডার

1
বা ব্যবহার করুন #if DEBUG& #if !DEBUGপ্রাকম্পম্পেলার বিবৃতি
লিয়াম

এও মনে রাখবেন যে এটি debug="true"কনফিগারটিকে ওভাররাইড করে , তাই আপনি এই মানটিকে হার্ডকোড করলে অপ্টিমাইজেশন সর্বদা সক্ষম বা অক্ষম থাকে
লিয়াম

1
অথবা " if (HttpContext.Current.IsDebuggingEnabled) { BundleTable.EnableOptimizations = false; } else { BundleTable.EnableOptimizations = true; }
ভার্বোজ

আপনি যদি ওয়েব কনফিগারেশন বিকল্পটি পছন্দ করেন তবে আপনি কনফিগারেশন অনুযায়ী একাধিক ওয়েব কনফিগারও সেটআপ করতে পারেন তাই ডিবাগ ওয়েব কনফিগারেশনটি সত্য হয়ে যাবে এবং মুক্তি হবে ভুয়া ডকস.মাইক্রোসফট.ইন.ইউএস
ম্যাথু এলিসন

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" />ওয়েবকনফাইগ এ সেট করতে হবে

@ হিবি: এমএস পৃষ্ঠাটি উদ্ধৃত করতে

বিকাশের পরিবেশে আপনার জাভাস্ক্রিপ্টটি ডিবাগ করা সহজ (যেখানে ওয়েবকনফিগ ফাইলে সংকলন এলিমেন্টটি ডিবাগ = "সত্য" তে সেট করা আছে) কারণ জাভাস্ক্রিপ্ট ফাইলগুলি বান্ডিল বা মনিফাই করা হয়নি।


আমার ক্ষেত্রে, আমি কেবল ব্যাকএন্ড সি # কোডটি ডিবাগ করতে চেয়েছিলাম এবং আমাদের অ্যাপ্লিকেশনটি সেট আপ করার কারণে আমাদের সমস্ত স্টাইলশিট এবং স্ক্রিপ্টগুলি সঠিকভাবে লোড করার জন্য কাজ করতে বান্ডিলিং প্রয়োজন।
এমলুইজস

3
@ এনসোসেকে - যদিও এটি ডিবাগ করা সহজ হতে পারে, কখনও কখনও জাভাস্ক্রিপ্ট বাগগুলি সংশোধন প্রক্রিয়ার কারণে ঘটে থাকে যার জন্য আপনাকে স্থানীয়ভাবে মাইনযুক্ত স্ক্রিপ্টগুলি চালাতে সক্ষম হতে হবে।
জো কোডার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.