29/9/2010 11:55
El Bruno
[MSBUILD] Utilizando trazas en tareas personalizadas (XVII)

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
Saludos @ Here
El Bruno

Archivado en: Visual Studio 2010,Build,Code Sample,MSBuild
Comparte este post: