Asp.net mvc 3 MVC条件编译符号调试-发布

Asp.net mvc 3 MVC条件编译符号调试-发布,asp.net-mvc-3,Asp.net Mvc 3,据我所知,在项目->属性->构建设置下有一个“定义调试常量”。默认情况下,“Debug”配置选中了此选项,这意味着“#if Debug”应该求值以重试。默认情况下,“发布”配置也未选中此选项 我正在MVC 3应用程序中使用vs2010 sp1进行编程,以下是我所做的工作: @{ #if DEBUG <script language="javascript" type="text/javascript"> $(document).ready(function

据我所知,在项目->属性->构建设置下有一个“定义调试常量”。默认情况下,“Debug”配置选中了此选项,这意味着“#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 }
@{
#如果调试
$(文档).ready(函数(){
//把你所有的jQuery优点都放在这里。
警报(“调试生成”);
});
#否则
$(文档).ready(函数(){
//把你所有的jQuery优点都放在这里。
警报(“发布版本”);
});
#endif}
我的问题是,无论构建类型、版本还是调试,我都会收到“调试构建”的警报


我做错了什么?

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

@{
@{
    if(System.Diagnostics.Debugger.IsAttached)
    {
        <script type="text/javascript">
        </script>      
    }
}
if(System.Diagnostics.Debugger.IsAttached) { } }

可以工作,但不是像
#DEBUG
那样优化,即使在VS外部调试,也会被命中。我如何为每个控制器执行此操作?如果您的所有控制器都继承自basecontroller override OnAction,并在basecontroller中执行。您不是在谈论两件不同的事情吗,即,编译是否使用调试符号完成,与是否附加了调试器?