Лучший способ обнаружить сборку релиза из отладочной сборки? .сеть - PullRequest
7 голосов
/ 09 сентября 2008

Итак, у меня есть около 10 коротких CSS-файлов, которые я использую с приложением MVC. Есть как error.css login.css так далее... Просто несколько очень коротких CSS-файлов, которые облегчают обновление и редактирование (по крайней мере, для меня). То, что я хочу, это то, что будет оптимизировать ветвь if else и не включать ее в последние биты. Я хочу сделать что-то вроде этого

if(Debug.Mode){

<link rel="stylesheet" type="text/css" href="error.css" /> 
<link rel="stylesheet" type="text/css" href="login.css" /> 
<link rel="stylesheet" type="text/css" href="menu.css" /> 
<link rel="stylesheet" type="text/css" href="page.css" /> 
} else {
<link rel="stylesheet" type="text/css" href="site.css" /> 
}

У меня будет задача msbuild, которая объединит все файлы css, сведет их к минимуму и все такое хорошее. Мне просто нужно знать, есть ли способ удалить ветвь if else в последних битах.

Ответы [ 5 ]

26 голосов
/ 09 сентября 2008

В частности, как это в C #:

#if (DEBUG)
   Debug Stuff
#endif

C # имеет следующие директивы препроцессора:

#if 
#else 
#elif // Else If
#endif
#define
#undef // Undefine
#warning // Causes the preprocessor to fire warning
#error // Causes the preprocessor to fire a fatal error
#line // Lets the preprocessor know where this source line came from
#region // Codefolding
#endregion 
7 голосов
/ 18 ноября 2008
  if (System.Diagnostics.Debugger.IsAttached)
  {
           // Do this
  }
  else
  {
            // Do that
  }
5 голосов
/ 09 сентября 2008

Я должен был использовать Google.

#if DEBUG
    Console.WriteLine("Debug mode.") 
#else 
    Console.WriteLine("Release mode.") 
#endif 

Убедитесь, что опция «Настройки конфигурации» -> «Построить» «Определить отладку» константа "в свойствах проекта проверено.

4 голосов
/ 14 октября 2011

Вы можете попробовать использовать

HttpContext.Current.IsDebuggingEnabled

управляется узлом в конфигурации. На мой взгляд, это более хорошее решение, чем условная компиляция.

Однако, если вы хотите иметь возможность управления на основе компиляции, я думаю, вы можете использовать ConditionalAttribute .

С уважением,

1 голос
/ 09 сентября 2008

Константы компилятора. Я не помню синтаксис C #, но вот как я делаю это в VB:

#If CONFIG = "Debug" Then
  'do somtehing
#Else
  'do something else
#EndIf
...