-
Buenas, siempre que tengo que procesar una condición para setear el valor de una propiedad, termino haciendo unas líneas muy raras de MSBuild . Me voy a apuntar este post para que dentro de 2 horas no se me olvide como lo resuelvo de una forma simple. En el siguiente ejemplo, vemos que...
-
Buenas, después de mi visita por Barcelona la semana pasada al equipo del AlegreBandolero , Marc Rubiño y su gente, pues uno de los temas que quedó pendiente era evaluar la capacidad de lanzar scripts de MSBuild desde una definición de build de Team Foundation Server 2010 . Ahora bien, esto que no es...
-
Buenas, cuando los archivos de MSBuild comienzan a ser más grandes que lo que aconseja el sentido común, pues es una buena idea, separar los mismos en varios archivos y además separar los MSBuild Targets en Targets más pequeños. Vamos que los mismos principios SOLID que aplicamos cuando escribimos código...
-
Buenas, MSBuild posee Out Of The Box una serie de tareas que permiten compilar un proyecto, mostrar mensajes en la consola, etc.; y entre ellas hay varias que son muy útiles para trabajar con archivos. Como uno de los principios que siempre intento seguir es no reinventar la rueda, si en algún momento...
-
Buenas, cuando creas una Custom Task para MSBuild , es probable que en algún momento te tientes de utilizar otros ensamblados dentro de la misma. Esto que se soluciona de una forma simple en aplicaciones .Net, en MSBuild puede ser un tanto complicado ya que el control que tenemos sobre el host...
-
Buenas, ayer escribí un post donde comenté un escenario donde al intentar ejecutar pruebas unitarias para Custom Tasks de MSBuild , nos encontrábamos con que la instancia de la propiedad Log ( TaskLoggingHelper ) no estaba inicializada y no podíamos continuar con nuestras pruebas. Para solucionar este...
-
Buenas, hace unos días posteé un ejemplo muy simple para realizar trazas en tareas personalizadas de MSBuild . En este post, le vamos a dar una pequeña vuelta más al ejemplo para ver como podemos utilizar pruebas unitarias en estos casos. Supongamos una tarea personalizada llamada MyThirdTask , en la...
-
Buenas, ayer posteé un ejemplo muy básico para la creación de una tarea personalizada para MSBuild . Si eres un desarrollador, seguramente una de los primeros componentes que necesitas está relacionado con la capacidad de dejar trazas, en este caso en una Custom Task para MSBuild . Para esto tenemos...
-
Buenas, hace un tiempo escribí un post donde comenté como crear una tarea personalizada para MSBuild que agrupe un set de strings. Pues este post es un primer paso para mostrar como crear una tarea personalizada para MSBuild , y luego iremos complicando un poquito el tema. En primer lugar debermos crear...
-
Buenas, que los chicos de JetBrains son unos cracks no es ninguna novedad, ReSharper es un excelente ejemplo de esto. Si programas con VB.Net o C# y lo utilizas, no hace falta que te explique las ventajas que te brinda y lo que te ayuda programando; personalmente yo lo tengo en la lista de las mejores...
-
Buenas, después de casi un mes de escribir un poco de MSBuild , a continuación el listado de los posts como para ir comprendiendo un poco de que va MSBuild : [MSBUILD] HowTo: Acceder a información en variables de Build (I) [MSBUILD] HowTo: Utilizar propiedades en MSBuild (II) [MSBUILD] HowTo:...
-
Buenas, otra de las novedades en MSBuild 4.0, son dos nuevos targets BeforeTargets y AfterTargets. Hasta la versión 3.5 los MSBuild Targets se definen si el comienzo de un Target depende de la salida de otro Target; utilizando varios atributos para especificar el orden en el que se ejecutan los mismos...
-
Buenas, otra de las novedades incluidas en MSBuild 4.0 son las MSBuild Property Functions . Las mismas permiten trabajar con funciones básicas de scripting para evaluar los valores de una propiedad, incluyendo tareas básicas para trabajo con Strings y otras clases de .Net Framework. El siguiente proyecto...
-
Buenas, en el post anterior comentaba sobre la capacidad de definir propiedades además de un poco de código para las Inline Tasks en MSBuild 4.0, pero claro, ahora que estamos trabajando con varias variables (definiciones en Xml, código C#, etc); pues es posible que nuestro código tenga errores. En el...
-
Buenas, en mi post anterior comentaba sobre las nuevas Inline Tasks introducidas en MSBuild 4.0. Además de poder crear y definir este tipo de tareas, es posible también definir propiedades de Input y Output para utilizarlos en la definición de la tarea. Las mismas se definen dentro del elemento <ParameterGroup...
-
Buenas, una de las novedades más interesantes y más peligrosas que se incorporan en MSBuild 4.0 , es la capacidad de trabajar con tareas autocontenidas ( Inline Tasks ). El listado completo de novedades se puede encontrar aquí , pero lo mejor de esta novedad es que para tareas simples, ya no será necesario...
-
Buenas, en un par de post anteriores a este, escribí sobre la forma de trabajar con grupos de elementos en MSBuild . Cuando los grupos de elementos con los que trabajamos son grupos archivos, podemos acceder a información adicional que nos permite ver datos como la extensión de los archivos, la fecha...
-
Buenas, ayer fue el turno de las condiciones, asi que es natural que el siguiente post esté relacionado con los CASE/Switch o MSBuild Conditional Constructs , como se definen en MSDN. Este elemento nos permite armar sentencias de selección utilizando: Choose Element http://msdn.microsoft...
-
Buenas, las condiciones en MSBuild se aplican a casi todos los elementos y tareas que están disponibles para utilizar a través del atributo @Condition. En esta entrada de MSDN: MSBuild Conditions , se explican todos los tipos de condiciones soportados, pero viene bien mostrar un par de ejemplos. El siguiente...
-
Buenas, después de hablar de uno de los elementos que nos permiten modularizar la ejecución de nuestros proyectos de MSBuild : los MSBuild Targets , otra opción que poseemos es poder importar/incluir archivos de proyecto de MSBuild en otros archivos de proyectos. Para esto se utiliza la etiqueta <...