Recortes de mi Webeo


Compilación condicional / Conditional Compilation

Posted in Compact Framework,Net por novaxo en 3 septiembre, 2007

Esto me ha tenido muy pensativo sobre como hacerlo. No se si poner esto como diferencia entre Visual Basic .Net con C# pero es que me ha tenido varias horas el poder solucionar mi problema. Se los dejo por si a alguien mas le es útil.

Muchas veces tenemos la necesidad de trabajar con diferentes configuracion para cada solución. Aclararé unos puntos claves.

  • Hay una gran diferencia entre la configuración de la solución (Solution Configuration) y la configuración del proyecto (Project Configuration), pues son configuracione separadas. Ten en cuenta este punto si en tu solución tienes más de un proyecto.
  • En C# las directivas no tienen valores, simplemente deben ser definidas.
  • Todo lo contrario, en VB .Net si tienen valores.

Constantes definidas

Las constantes DEBUG y TRACE son definidas en el archivo de proyecto .csproj, mientras que RELEASE no esta definida. Por eso el resultado de evaluar la condición la condición será siempre falso:

#if RELEASE // Siempre será falso
    	Console.WriteLine("Mi Release") // No se ejecutara
#endif

No es lo mismo http://www.dotnet247.com/247reference/msgs/40/204915.aspx

Las configuraciones de proyecto y solucion no son lo mismo.

Como maneja C# las configuraciones de proyecto
http://channel9.msdn.com/ShowPost.aspx?PostID=334405

Una diferencia muy notable entre C# y VB .Net: #if en C# es conocido como #ifdef en C. No hay #if <condition> en C#. En VB .Net si existe #if <condition>, es por eso que permite esto:

#If CONFIG ="RELEASE-WIN32" Then
	Console.WriteLine("Mi Release")
#ElseIf CONFIG ="Debug" Then
	Console.WriteLine("Debug")
#End If

Como configurar nuevas constantes
Solo hay que abrir el archivo de proyecto .csproj y ubicar el <PropertyGroup Condition que defina la configuración en la que deseemos definir nuetsras constantes. Luego hay que editar en el tag <DefineConstants>DEBUG;TRACE</DefineConstants> y ahi ponemos todas las constantes que necesitemos.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: