@ {# если DEBUG} не работает - PullRequest
2 голосов
/ 01 марта 2012

Мой файл web.config содержит это

<compilation debug="false" targetFramework="4.0">
   <assemblies>
      // some assemblies
   </assemblies>
</compilation>

И в моем файле _Layout.cshtml у меня есть

@{#if DEBUG}
  // include all css and js files
@{#else}
  // include the minified and combined versions of the css and js files
@{#endif} 

Проблема в том, что выполняется ветка @ {# if DEBUG}. Если я изменю эту ветку на @ {# if! DEBUG}, тогда будет выполняться ветвь else. Почему это?

Спасибо.

Сэчины

1 Ответ

3 голосов
/ 01 марта 2012

Атрибут Web.config debug="" не влияет на символы препроцессора.

Вы можете проверить этот атрибут напрямую так:

var compilation = WebConfigurationManager.GetSection("system.web/compilation") as CompilationSection;
return compilation != null && compilation.Debug;

(Вы должны поместить это в статическое свойство в любом классе, а затем проверить это свойство в обычном if утверждении)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...