【问题标题】:The DEBUG constant in Visual Studio 2012 won't activateVisual Studio 2012 中的 DEBUG 常量不会激活
【发布时间】:2013-10-30 12:17:43
【问题描述】:

在 .NET Framework 4.5、ASP.NET MVC 4 中尝试在 Visual Studio 中使用 ifdef DEBUG 常量对我不起作用。

我确定:

  • 在项目属性中为调试配置检查“定义调试常量”
  • Web.config 确实包含<compilation debug="true"...

我用来验证的代码在 IDE 和运行时都显示 isDebug = false,即使我在 Debug 配置下运行:

bool isDebug;
#if DEBUG
    isDebug = true;
#else
    isDebug = false;
#endif

这是 Visual Studio 的屏幕截图,显示我已激活调试配置,但在代码中,颜色突出显示未定义调试。

我一定是错过了什么!

编辑:构建视图的属性窗口显示内容的屏幕截图:

【问题讨论】:

  • 请确认您勾选了“Define DEBUG constant”,配置下拉菜单设置为“Debug”
  • 您的解决方案的 Active config 属性值是多少?
  • @neoistheone,谢谢,图片 URL 在我当前位置被阻止。
  • @cederlof,你确定你在同一个项目中工作吗?
  • 你能在扩展名为 .cshtml 的文件中使用#if DEBUG 吗??

标签: c# asp.net .net visual-studio-2012 conditional-compilation


【解决方案1】:

没有。您无法在扩展名为 .cshtml

的文件中检查带有 #if DEBUG 的 DEBUG 常量

【讨论】:

  • 有人想知道为什么会出现这种情况吗? :) 也许 ASP.NET 编译器不支持条件常量?
【解决方案2】:

这是设计使然。

这些指令只是编译时的。 CSHTML(和其他 ASP.NET 页面)在运行时(在 Web 服务器上)编译,因此您在 VS 中选择的指令不会影响它们。

在 Microsoft Connect 上查看帖子 CSHTML does not recognize project level compilation symbols

【讨论】:

    猜你喜欢
    • 2012-11-06
    • 1970-01-01
    • 2014-08-20
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多