【问题标题】:MVC Condition Compilation Symbols Debug - ReleaseMVC 条件编译符号调试 - 发布
【发布时间】:2011-09-08 22:48:23
【问题描述】:

据我了解,在 Project->Properties->Build settings 下有一个“Define DEBUG constant”。默认情况下,“调试”配置已选中此选项,这意味着“#if DEBUG”应该评估为尝试。同样默认情况下,“发布”配置未选中此选项。

我在一个 MVC 3 应用程序中在 vs2010 sp1 下编程,以下是我所做的:

@{ 
#if DEBUG
    <script language="javascript" type="text/javascript">
        $(document).ready(function () {
            // put all your jQuery goodness in here.
            alert('Debug Build');
        });
    </script>
#else    
    <script language="javascript" type="text/javascript">
        $(document).ready(function () {
            // put all your jQuery goodness in here.
            alert('Release Build');
        });
    </script>
#endif }

我的问题是,无论构建类型是发布还是调试,我都会收到“调试构建”的警报。

我做错了什么?

【问题讨论】:

    标签: asp.net-mvc-3


    【解决方案1】:
    @{
        if(System.Diagnostics.Debugger.IsAttached)
        {
            <script type="text/javascript">
            </script>      
        }
    }
    

    可以工作,但没有像 #DEBUG 那样优化,即使在 VS 外部调试也会受到影响

    【讨论】:

    • 你不是在说两件不同的事情,即编译是否使用调试符号完成与是否附加了调试器?
    【解决方案2】:

    不幸的是,这永远不会奏效。您需要在控制器中设置的 viewbag 中放入一些东西。

    【讨论】:

    • 我怎样才能为每个控制器做到这一点?
    • 如果你的所有控制器都继承自 basecontroller 覆盖 BaseController 中的 OnActionExecuting。
    猜你喜欢
    • 1970-01-01
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    • 2019-03-24
    • 2010-12-31
    • 2010-12-08
    相关资源
    最近更新 更多