29/9/2010 11:55 El Bruno

[MSBUILD] Utilizando trazas en tareas personalizadas (XVII)

image47dd1de4

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:

Como es posible ver, existen variantes para mostrar información “a pelo”, mostrar información desde un recurso, esto es muy útil para aplicaciones localizadas, a partir de un código, etc. Vamos que las opciones son muchas.

El siguiente ejemplo, muestra la capacidad para dejar trazas del tipo Error, Warning y Message, en las líneas 14, 15 y 16.

   1: using Microsoft.Build.Utilities;
   2: using Microsoft.Build.Framework;
   3: namespace ElBruno.MsBuild
   4: {
   5:     public class MySecondTask : Task
   6:     {
   7:         public string InputData { get; set; }
   8:         [Output]
   9:         public string OutputData { get; set; }
  10:         public override bool Execute()
  11:         {
  12:             bool ret = true;
  13:             OutputData = string.Format(@"{0} Input Data Procesada", InputData);
  14:             Log.LogMessage(OutputData);
  15:             Log.LogWarning(OutputData);
  16:             Log.LogError(OutputData);
  17:             return ret;
  18:         }
  19:     }
  20: }

 

Si generamos un proyecto que utilice esta nueva tarea

   1: <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
   2:          InitialTargets="Target1">
   3:   <UsingTask TaskName="ElBruno.MsBuild.MySecondTask"
   4:              AssemblyFile="c:\srcBruno\Agile01\MsBuild Tests\Sample 02\bin\Debug\ElBruno.MsBuild.dll" />
   5:   <Target Name="Target1">
   6:     <MySecondTask InputData="Valentino">
   7:       <Output TaskParameter="OutputData" PropertyName="OutputData" />
   8:     </MySecondTask>
   9:   </Target>
  10: </Project>

 

Veremos un resultado similar al siguiente

image

 

 

Saludos @ Here

El Bruno

   

Archivado en: ,,,
Comparte este post:

# [MSBUILD] Intentando realizar pruebas unitarias para tareas personalizadas de MSBuild, problema con TaskLoggingHelper (XVIII)

Sunday, October 03, 2010 11:25 PM by El Bruno

Buenas, hace unos días posteé un ejemplo muy simple para realizar trazas en tareas personalizadas de

# [MSBUILD] Intentando realizar pruebas unitarias para tareas personalizadas de MSBuild, problema con TaskLoggingHelper (XVIII)

Sunday, October 03, 2010 11:26 PM by El Bruno

Buenas, hace unos días posteé un ejemplo muy simple para realizar trazas en tareas personalizadas de

# [MSBUILD] Recopilatorio de enlaces para comenzar a conocer MSBuild (II)

Thursday, October 28, 2010 8:40 AM by El Bruno

Buenas, actualización de la lista de enlaces para dar los primeros pasos con MSBuild . Cómo empezar

# [#MSBUILD] Recopilatorio de enlaces para comenzar a conocer MSBuild (III)

Tuesday, September 27, 2011 9:10 PM by El Bruno

Buenas, actualización de la lista de enlaces para dar los primeros pasos con MSBuild . Cómo

# [#MSBUILD] Recopilatorio de enlaces para comenzar a conocer MSBuild (III)

Wednesday, September 28, 2011 8:34 PM by El Bruno

Buenas, actualización de la lista de enlaces para dar los primeros pasos con MSBuild . Cómo