Лучший способ обнаружить сборку выпуска из сборки отладки? .сеть

Итак, у меня есть около 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 в последних битах.


person jdelator    schedule 08.09.2008    source источник
comment
похожие вопросы в Stackoverflow, один вопрос и много-много разных ответов: сеть режима отладки">stackoverflow.com/questions/654450/ stackoverflow.com/questions/798971/ stackoverflow.com/questions/194616/ stackoverflow.com/questions/50900/ stackoverflow.com/questions/890459/   -  person Kiquenet    schedule 03.02.2011


Ответы (5)


В частности, как это в 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 
person FlySwat    schedule 08.09.2008

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

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

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

person jdelator    schedule 08.09.2008

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

HttpContext.Current.IsDebuggingEnabled

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

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

С уважением,

person Assassin    schedule 14.10.2011

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

#If CONFIG = "Debug" Then
  'do somtehing
#Else
  'do something else
#EndIf
person Jonathan Allen    schedule 08.09.2008

person    schedule
comment
Это говорит вам (во время выполнения), подключен ли отладчик, но не является ли сборка сборкой DEBUG (по сравнению с RELEASE). - person AlfredBr; 24.10.2012