2010-01-03 13 views
19

Tengo varias clases en un proyecto que solo deben estar en ciertas compilaciones de la aplicación que actualmente no están listas para su lanzamiento o depuración.Cómo configurar todo el proyecto #define en C#

Para evitar estas clases se utilice, quiero fijar alrededor de ellos esto:

#if USE_MYCLASS 
// Code here... 
#endif 

Por desgracia, no sé cómo configurar un proyecto de amplia #define.

Existe una funcionalidad en Visual Studio para establecer definiciones de todo el proyecto.

Si, aunque no lo necesito en este momento, ¿existe una funcionalidad para establecer definiciones de solución amplia?

Si no hay ninguna funcionalidad para eso (ya que C# no tiene archivos de inclusión, supongo que es posible), ¿hay algún método o complemento para hacer esta funcionalidad sin usar el compilador de línea de comandos y/D?

Respuesta

31

Puede hacerlo en las propiedades del proyecto, pero no en el código fuente.

Propiedades del proyecto => Construir => condicionales símbolos de compilación

Puede especificar lo que necesita símbolos (espacio delimitado, pero IIRC es bastante indulgente). Tenga en cuenta que DEBUG y TRACE también se pueden activar con una casilla de verificación.

Tengo algunos proyectos con múltiples "liberación" construir configuraciones, con diferentes símbolos en cada uno (para la construcción de 2.0 vs 3.0 vs 3.5 versiones - ver <DefineConstants>here)

+1

Justo en frente de mi cara! Nunca supe para qué era eso o cómo usarlo, ¡gracias! –

+0

¡Gracias! ¡Estaba justo frente a mi cara también! – Xonatron

+0

"Puedes hacerlo en las propiedades del proyecto, pero no en el código fuente". Eso es en realidad una limitación bastante desagradable. Ser capaz de hacer esto en código es importante por conveniencia y visibilidad. –

Cuestiones relacionadas