Ver por etiquetas

Todas las etiquetas » Build (RSS)
Buenas, siguiendo con la línea de posts sobre la personalización de actiidades para Team Build 2010, hoy mostraré las 4 líneas de código necesarias para agregar un link en el output de una build en Team Foundation Server 2010 . En posts anteriores expliqué como crear una actividad personalizada para Team Build 2010, y sobre esa base hoy agregaremos la siguiente clase al proyecto de ejemplo: using System; using System.Activities; using Microsoft.TeamFoundation...
Buenas, me dejo un apunte relacionado con un error que me he encontrado un par de veces en definiciones de Builds para Team Foundation Server 2010 . Todavía no tengo claro si es un bug de Visual Studio 2010 o un error mío de definición de proyectos, aunque la tendencia es claramente para la 2da opción. El error en cuestión es el siguiente: CSC: Cannot specify /main if building a module or library cuando se intenta compilar una Class Library en una build. Obviamente...
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 para nada complicado tiene un par de puntos a tener en cuenta relativos a la configuración de la build en Team Foundation Server 2010 y del script de MSBuild. Los siguientes pasos demuestran como incluir...
Buenas, así como hace unos días comenté que las Team Foundation Server Power Tools nos pueden ayudar mucho en el trabajo diario en el file system, las Team Foundation Server Build Power Extensions , cubren la parte relacionada con la compilación y análisis de información para mundos no relacionados con MSBuild. Vamos por partes que este pack de extensiones para MSBuild, es completo completo. Utilizando estas extensiones de MSBuild, podremos compilar proyectos de Ant o Maven 2, pero además nos permitirá...
Buenas, una de las opciones que tenemos en las builds de Team Foundation Server define si la build se ejecutará inclusive si no hubo cambios en el código que compila la misma. La siguiente imagen muestra un ejemplo de la configuración de la Build, con la opción [ Build even if nothing has changed since the previous build ]. Nota: Si quieres ver los pasos necesarios para definir una Build, MSDN es tu amiga http://msdn.microsoft.com/en-us/library/ms181716.aspx . Supongamos que tenemos 3 definiciones...
Publicado por El Bruno | con no comments
Buenas, ayer estaba en Barcelona en una mini sesión de Visual Studio 2010 , y me encontré con un escenario curioso relacionado con el motor de compilación de TFS2010 . Para comprender el problema, primero repasemos el proceso básico que realiza una Build: Descarga código fuente Compila el código fuente Ejecuta las pruebas unitarias Realiza el análisis de Cobertura de Código Despliega el resultado de la build en un directorio de DROP Almacena toda la información de estos pasos en la base de datos...
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 necesito copiar un archivo, por ejemplo; pues me fijaré si no existe una tarea OOTB para esta acción antes de escribir mi propia Custom Task. El listado completo de tareas OOTB es el siguiente http...
  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 de ejecución ( MSBuild ) no es bastante pobre. Supongamos el siguiente escenario, donde una tarea llamada TaskFour utiliza un componente para realizar una suma (líneas 13 y 14): 1: using Microsoft.Build...
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 a nuestra disposición la clase TaskLoggingHelper , ubicada en Microsoft.Build.Utilities.TaskLoggingHelper y que nos permite tareas como: LogCommandLine Sobrecargado. Registra la línea de comandos. LogError...
Buenas, hoy también toda hacer un poco de publicidad gratuita pero la verdad es que cuando trabajas con archivos grandes de MSBuild , el panel de Resharper File Structure (Ctrl + Alt +  F) es una de las mejores ayudas que puedes tener. El mismo te muestra una vista en modo árbol de un archivo .proj, en el que es posible distinguir, entre otras cosas: definición de propiedades definición de grupos de propiedades la declaración de Imports la declaración de Usings los targets y los elementos internos...
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 caso de que se disparen los mismos, el propio compilador de MSBuild , nos informará el detalle y además podremos ver el log de compilación, como si fuese un proyecto C#. El siguiente proyecto posee...
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 /> y pueden definir características propias como por ejemplo, el tipo de dato de la propiedad, si es requerida, o si es de tipo Output. El siguiente proyecto define un parámetro de tipo...
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 crear un ensamblado .Net que implemente la interfaz ITask , e integrar el mismo en el proceso de Build. Para definir una Inline Task, se utiliza el elemento UsingTask , y dentro del mismo, se define...
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.com/en-us/library/ms164282.aspx When Element http://msdn.microsoft.com/en-us/library/ms164289.aspx Otherwise Element http://msdn.microsoft.com/en-us/library/ms164286.aspx Como lo mejor es leer un poco...
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 proyecto, define una propiedad $(Nino) (línea 4) y luego ejecuta una tarea para mostrar un mensaje, dependiendo de una condición donde se evalua si el valor de la propiedad es igual a [Valentino...
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 < Import >. La misma permite incluir el contenido de un archivo externo dentro del archivo de proyecto en la que se define. Por ejemplo, si existe un archivo en [ C:\srcBruno\Agile01\MsBuild Tests\Imports_1...
Buenas, una vez definidos nuestros MSBuild Targets , es momento de controlar el flujo de llamadas entre ellos. Para esto utilizamos la tarea de MSBuild : CallTarget . Esta tarea tiene una sintaxis muy simple, y el atributo @Targets , define los MSBuild Targets que se invocarán. Por ejemplo, en el siguiente proyecto, existen definidos 3 Targets: Target1 Target2 Target3 y utilizando la tarea CallTarget , se define el siguiente flujo de llamadas: Target1 –> Target2 –> Target3, en las líneas 5...
Buenas, en el post anterior comentaba como funciona un elemento básico de MSBuild , como son los MSBuild Target . Un detalle interesante a tener en cuenta cuando trabajamos con estos elementos es la captura de excepciones. Soy conciente de que muchos de ustedes no tienen errores en el código, pero como yo soy un poco corto de luces y en la cabeza solo tengo pelos, pues tengo que aprovechar la tarea < OnError > para gestionar este tipo de escenarios. Sunpongamos el siguiente proyecto...
Buenas, en el mini post de hoy, veremos uno de los componentes más importantes de MSBuild : los MSBuild Targets . Los mismos permiten definir bloques o secciones de acciones de manera que sea posible organizar la ejecución de un proyecto de compilación de una forma más ordenada. Haciendo una analogía con la programación que conocemos, un MSBuild Target , es algo similar a una función. Un ejemplo simple de un proyecto donde se utilicen MSbuild Targets...
Buenas, hoy toca ver un poco somo funcionan el elemento < ItemGroup > en MSBuild . Este elemento permite definir una colección de elementos personalizados,en scripts de MSBuild , para luego poder trabajar con los mismos. En el siguiente ejemplo, creo una colección de elementos <Cliente>, entre las líneas 6 y 11, con diferentes valores para cada uno de los mismos. Luego utilizo una tarea personalizada que concatena los valores de estos elementos (líneas 15 a...
Más artículos Página siguiente >