Константа DEBUG в Visual Studio 2012 не активируется

Попытка использовать постоянную DEBUG ifdef в Visual Studio не работает для меня в.NET Framework 4.5, ASP.NET MVC 4.

Я убедился:

  • "Определить константу DEBUG" проверяется на предмет конфигурации Debug в свойствах проекта
  • Web.config включает в себя <compilation debug="true"...

Код, который я использую для проверки, показывает isDebug = false, как в IDE, так и во время выполнения, даже если я запускаю в Debug-конфигурации:

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

Это экранная часть Visual Studio, показывающая, что у меня активна конфигурация отладки, но в коде выделение цветом говорит, что DEBUG не определен.

если DEBUG isDebug = true, иначе isDebug = false

Я должен что-то упустить!

Изменить: Снимок экрана того, что окно свойств показывает для Build-view:Свойства окна

2 ответа

Решение

Нет. Вы не можете проверить константу DEBUG с помощью #if DEBUG в файле с расширением .cshtml

Это по замыслу.

Эти директивы предназначены только для времени компиляции. CSHTML (и другие страницы ASP.NET) компилируются во время выполнения (на веб-сервере), поэтому директива, выбранная вами в VS, не повлияет на них.

См. Статью CSHTML не распознает символы компиляции на уровне проекта в Microsoft Connect.

Другие вопросы по тегам