En todos los ejemplos que he visto de la directiva del compilador #if, usan "DEBUG". ¿Puedo usar "RELEASE" de la misma manera para excluir el código que no quiero ejecutar cuando se compila en modo de depuración? El código que quiero rodear con este bloque envía un montón de correos electrónicos, y no quiero enviarlos accidentalmente durante las pruebas.
277
#if !DEBUG
cumple la misma función que#if RELEASE
tendría. Como alternativa,#if DEBUG
a continuación,#else
a continuación,#endif
si hay diferentes códigos para funcionar en los modos.Respuestas:
No, no lo hará, a menos que hagas un trabajo.
La parte importante aquí es qué es realmente DEBUG, y es una especie de constante definida con la que el compilador puede verificar.
Si marca las propiedades del proyecto, en la pestaña Construir, encontrará tres cosas:
No existe tal casilla de verificación, ni constante / símbolo predefinido que tenga el nombre RELEASE.
Sin embargo, puede agregar fácilmente ese nombre al cuadro de texto etiquetado Símbolos de compilación condicional, pero asegúrese de establecer la configuración del proyecto en Modo de lanzamiento antes de hacerlo, ya que estas configuraciones son por configuración.
Básicamente, a menos que agregue eso al cuadro de texto,
#if RELEASE
no producirá ningún código bajo ninguna configuración.fuente
RELEASE
no está definido, pero puedes usarfuente
RELEASE
estaba definida.No
Mientras que en la configuración de depuración hay una
DEBUG
constante definida (definida automáticamente por Visual Studio), mientras que no hay una constante definida para el modo de lanzamiento. Verifique la configuración de su proyecto en construcción.Seleccionando [Definir constante DEPURACIÓN] en Proyecto -> Construir es como incluir #definir DEPURACIÓN al comienzo de cada archivo.
Si desea definir una constante de LIBERACIÓN para la configuración de liberación, vaya a:
fuente
#if (RELEASE) [RequireHttps] #endif
En mi instalación VS (VS 2008)
#if RELEASE
no funciona. Sin embargo, podrías usar#if !DEBUG
Ejemplo:
fuente
Nunca he visto eso antes ... pero he visto:
y
¿Ese trabajo para ti?
fuente
!
operador funcionará, como en su segundo ejemplo.Puede usar
#if(!DEBUG)
para este propósito.fuente
"Pop Catalin" lo hizo bien. Controlar la definición en función del tipo de compilación proporciona una gran flexibilidad. Por ejemplo, puede tener una configuración "DEBUG", "DEMO" y "RELEASE", todo en la misma solución. Eso evita la necesidad de programación duplicada con dos soluciones diferentes.
Entonces sí
#if RELEASE
o#if (RELEASE)
funciona igual que#if DEBUG
cuando se define el símbolo de compilación condicional RELEASE.Lo siguiente está tomado de la publicación "Pop Catalin": Si desea definir una constante de LIBERACIÓN para la configuración de lanzamiento, vaya a: * Propiedades del proyecto -> Construir * Seleccione Modo de lanzamiento * en el cuadro de texto Símbolos de compilación condicional, ingrese: LIBERAR
fuente
Sé que esta es una pregunta antigua, pero vale la pena mencionar que puede crear sus propias configuraciones fuera de DEBUG y RELEASE, como TEST o UAT.
Si luego, en la pestaña Compilar de la página de propiedades del proyecto, establece los "Símbolos de compilación condicional" en PRUEBA (por ejemplo), puede usar una construcción como
Puede utilizar esta construcción por razones específicas, como clientes diferentes si tiene la necesidad, o incluso métodos web completos, por ejemplo. También hemos usado esto en el pasado donde algunos comandos han causado problemas en hardware específico, por lo que tenemos una configuración para una aplicación cuando se implementa en hardware X.
fuente
Puede crear sus propios símbolos de tiempo de compilación condicional (cualquier nombre que desee). Vaya al "cuadro de diálogo Generar proyecto", ubicado en el cuadro de propiedades del proyecto, opción de menú: Proyecto -> [nombre del proyecto] Propiedades ...
También puede definirlos "en la parte superior del archivo de código C #". Me gusta:
puedes usar el símbolo en una declaración #if:
fuente
por qué no solo
fuente
/d:RELEASE
También funcionaría. También puede agregar esto a los símbolos de compilación condicional en Configuración de lanzamiento (pestaña de compilación de propiedades del proyecto).