9

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

我确定:

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

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

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

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

如果调试 isDebug=true 否则 isDebug=false

我肯定错过了什么!

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

4

2 回答 2

8

不,您不能#if DEBUG在扩展名为.cshtml的文件中检查 DEBUG 常量

于 2013-10-30T12:49:11.783 回答
3

这是设计使然。

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

请参阅帖子CSHTML 无法识别Microsoft Connect 上的项目级编译符号

于 2013-10-30T13:31:26.480 回答