¿La mejor manera de detectar una versión de lanzamiento a partir de una versión de depuración?.neto
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.
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