¿La mejor manera de detectar una versión de lanzamiento a partir de una versión de depuración?.neto

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

  •  09-06-2019
  •  | 
  •  

Pregunta

Tengo alrededor de 10 archivos CSS cortos que uso con la aplicación mvc.Hay como error.css login.css, etc ...Solo algunos archivos CSS realmente cortos que facilitan la actualización y edición (al menos para mí).Lo que quiero es algo que optimice la rama if else y no la incorpore en los bits finales.quiero hacer algo como esto

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

Tendré una tarea msbuild que combinará todos los archivos css, los minimizará y todo eso.Sólo necesito saber si hay alguna manera de eliminar la rama if else en los bits finales.

¿Fue útil?

Solución

Específicamente, así en C#:

#if (DEBUG)
   Debug Stuff
#endif

C# tiene las siguientes directivas de preprocesador:

#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 

Otros consejos

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

Debería haber usado google.

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

Asegúrese de que la opción "Configuración de configuración" -> "Build" "Define la constante de depuración" en las propiedades del proyecto se verifica.

Puedes intentar usar

HttpContext.Current.IsDebuggingEnabled

está controlado por un nodo en configuración.En mi opinión, esta es una mejor solución que la compilación condicional.

Sin embargo, si quieres poder controlar en base a una compilación, creo que puedes usar un Atributo condicional.

Saludos,

Constantes del compilador.No recuerdo la sintaxis de C#, pero así es como lo hago en VB:

#If CONFIG = "Debug" Then
  'do somtehing
#Else
  'do something else
#EndIf
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top