在ASP.NET MVC 4中以调试模式启用捆绑和最小化


112

我不敢相信我找不到与此有关的其他问题,但是:如何在调试模式下启用捆绑?我知道如何为发布模式启用它,但是在调试模式下,我找不到启用捆绑的方法。

这有可能还是我错过了什么?

Answers:


214

您可以通过添加启用

BundleTable.EnableOptimizations = true;

在您的RegisterBundles方法中(App_Start文件夹中的BundleConfig类)。

检查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 !DEBUG预编译器声明
Liam 2015年

还请记住,这将覆盖debug="true"配置,因此如果您对该值进行硬编码,则始终启用或禁用优化
Liam 2015年

1
或使用“冗长的” MVC,例如if (HttpContext.Current.IsDebuggingEnabled) { BundleTable.EnableOptimizations = false; } else { BundleTable.EnableOptimizations = true; }
Tiramonium

如果你喜欢web配置选项,您还可以设置多个Web CONFIGS每个配置,调试Web配置将是真实的,并释放将是假 docs.microsoft.com/en-us/aspnet/web-forms/overview/deployment/...
Matthew Ellison

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

官方网站MS调试时这是不可能的状态来启用它。我认为原因是在禁用时更容易调试。如果要测试对应用程序的影响,则必须<compilation debug="true" />在Web.config中进行设置

@Hebe:引用MS页面

在开发环境中(Web.config文件中的compilation Element设置为debug =“ true”)在开发环境中调试JavaScript很容易,因为未捆绑或缩小JavaScript文件。


就我而言,我只想调试后端C#代码,并且由于我们应用程序的设置方式,我们需要捆绑才能使所有样式表和脚本正常加载。
MLowijs

3
@Ennosuke-尽管可能更容易调试,但有时由于缩小过程而导致Javascript错误,要求您能够在本地运行缩小的脚本。
编码员乔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.