A melhor maneira de detectar uma compilação de lançamento a partir de uma compilação de depuração?.líquido

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

  •  09-06-2019
  •  | 
  •  

Pergunta

Portanto, tenho cerca de 10 arquivos CSS curtos que uso com o aplicativo mvc.Existem erros.css login.css etc ...Apenas alguns arquivos CSS bem curtos que facilitam a atualização e a edição (pelo menos para mim).O que eu quero é algo que otimize o ramo if else e não o incorpore nos bits finais.Eu quero fazer algo assim

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" /> 
}

Terei uma tarefa msbuild que irá combinar todos os arquivos css, minimizá-los e todas essas coisas boas.Eu só preciso saber se existe uma maneira de remover a ramificação if else nas partes finais.

Foi útil?

Solução

Especificamente, assim em C#:

#if (DEBUG)
   Debug Stuff
#endif

C# possui as seguintes diretivas de pré-processador:

#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 

Outras dicas

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

Eu deveria ter usado o Google.

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

Certifique-se de que a opção "Configuration settings" -> "Build" "Define DEBUG constant" nas propriedades do projeto é marcado.

Você pode tentar usar

HttpContext.Current.IsDebuggingEnabled

ele é controlado por um nó na configuração.Na minha opinião, esta é uma solução melhor do que a compilação condicional.

No entanto, se você quiser controlar com base em uma compilação, acho que você pode usar um Atributo Condicional.

Cumprimentos,

Constantes do compilador.Não me lembro da sintaxe do C#, mas é assim que faço no VB:

#If CONFIG = "Debug" Then
  'do somtehing
#Else
  'do something else
#EndIf
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top