visual studio net generate entre diferencia debug create compile .net debugging release

.net - net - visual studio 2017 generate release



¿La mejor forma de detectar una compilación de lanzamiento a partir de una compilación de depuración?.red (5)

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

Así que tengo unos 10 archivos cortos css 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 la 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 todas esas cosas buenas. Solo necesito saber si hay una forma de eliminar la rama if else en los bits finales.


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


Puedes intentar usar

HttpContext.Current.IsDebuggingEnabled

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

Sin embargo, si desea poder controlar en base a un compilatino, creo que puede usar una AtribuciónCondicional .

Saludos,


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 esté marcada la opción "Configuraciones de configuración" -> "Crear" "Definir constante DEBUG" en las propiedades del proyecto.