2008-09-08 6 views
7

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

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 в финальных битах.

+0

похожести вопросы в Stackoverflow, один вопрос, и много, много различных ответов: http://stackoverflow.com/questions/654450/programatically-detecting-release-debug-mode-net http://stackoverflow.com/questions/798971/how-to-idenfiy-if-the-dll-is-debug-or-release-build-in-net http://stackoverflow.com/questions/194616/how-to-tell-if-net-app-was-compiled-in-debug-or-release-mode http://stackoverflow.com/questions/50900/best-way-to-detect- a-release-build-from-a-debug-build-net http://stackoverflow.com/questions/890459/asp-net-release-build-vs-debug-build – Kiquenet 2011-02-03 19:51:18

+0

Пожалуйста, обратитесь к моим сообщениям: [Как сообщить, является ли сборка отладкой или выпуском] (http: //dave-black.blogspot.com/2011/12/how-to-tell-if-assembly-is-debug-or.html) и [http://stackoverflow.com/questions/798971/how-to -idenfiy-если-заместитель длл-это-отладка или релиз-сборка-в-сеть/5316565 # 5316565] (http://stackoverflow.com/questions/798971/how-to-idenfiy-if-the- dll-is-debug-or-release-build-in-net/5316565 # 5316565) – 2012-06-21 13:39:17

ответ

27

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

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

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

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

1

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

#If CONFIG = "Debug" Then 
    'do somtehing 
#Else 
    'do something else 
#EndIf 
7
if (System.Diagnostics.Debugger.IsAttached) 
    { 
      // Do this 
    } 
    else 
    { 
      // Do that 
    } 
+5

Это говорит вам (во время выполнения), если отладчик подключен, но не если сборка является сборкой DEBUG (vs RELEASE). – AlfredBr 2012-10-24 17:17:37

4

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

HttpContext.Current.IsDebuggingEnabled 

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

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

С уважением,

 Смежные вопросы

  • Нет связанных вопросов^_^