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

StackOverflow https://stackoverflow.com/questions/50900

  •  09-06-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

Другие советы

  if (System.Diagnostics.Debugger.IsAttached)
  {
           // Do this
  }
  else
  {
            // Do that
  }

Мне следовало воспользоваться Google.

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

Убедитесь, что в свойствах проекта установлен флажок "Параметры конфигурации" -> "Сборка" "Определить ОТЛАДОЧНУЮ константу".

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

HttpContext.Current.IsDebuggingEnabled

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

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

С уважением,

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

#If CONFIG = "Debug" Then
  'do somtehing
#Else
  'do something else
#EndIf
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top