Programmation d'une tâche MSBuild
On a vu dans MSBuild Engine (1) que l'on doit utiliser les directives using :using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
Ces DLL se trouvent dans :
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319
En ajoutant dans le projet leurs références, un petit souci survient, des icônes en jaune :
Using MSBuild in .NET Framework 4.0 Client Profile |
Using MSBuild in .NET Framework 4.0 |
Using MSBuild choix du .NET Framework 4.0 |
Je peux maintenant ajouter une Class dans mon projet MyBuildProject :
using System;
using Microsoft.Build.Utilities;
namespace MyBuildProject
{
public class TaskMSBuild : Task
{
public override bool Execute()
{
Console.WriteLine("TaskMSBuild Executed ...");
return true;
}
}
}
Dans le .csproj, je rajoute :
<UsingTask TaskName="TaskMSBuild"
AssemblyFile="E:\WPF Presentation Sample\MyBuildProject\MyBuildProject\bin\Debug\MyBuildProject.exe"
TaskFactory="ClassName" />
<Target Name="MyTargetTaskMSBuild">
<TaskMSBuild />
</Target>
Etant donné que ma tâche est directement dans mon projet j'ai donc la propriéte "AssemblyFile" settée avec mon .exe. Le tag "<TaskMSBuild />" semble ne pas trop être apprécié par l'interpréteur ...
J'ai comme l'impression que cela ne va pas fonctionner :
Programmation d'une Tâche MSBuild dans la fenêtre console commande de Visual Studio |
Il y a plein de rouge ! Heureusement MSBuild est là pour m'aider et corriger mes erreurs.
Exécution d'une tâche MSBuild réussie
Finalement dans mon fichier projet, je garde :
<UsingTask TaskName="TaskMSBuild"
AssemblyFile="E:\WPF Presentation Sample\MyBuildProject\MyBuildProject\bin\Debug\MyBuildProject.exe" />
<Target Name="MyTargetTaskMSBuild">
<TaskMSBuild />
</Target>
Et à l'exécution :
Programmation d'une Tâche MSBuild exécution réussie |
J'ai bien une trace de l'exécution de ma tâche MSBuild : "TaskMSBuild Executed ...".
Aucun commentaire:
Enregistrer un commentaire