2011-03-02 65 views
8

有人可以编写(或链接到)演练,解释完全是如何创建自定义MSBuild任务并在构建过程中运行它?我正在寻找从Microsoft.Build.Utilities.Task继承和做一个自定义任务只有这个:MSBuild自定义任务“Hello World”演练

public override bool Execute() 
{ 
    Log.LogMessage("Hello world!"); 
    return true; 
} 

(我一直工作在这几个小时,不断收到“的[任何]任务没有发现检查。如果有一个明确的教程,我可以遵循,也许我会找出我的缺点。)

+0

你是否包括在?你可以发布你试图调用的MSBUILD以及完整的任务类吗? – 2011-03-02 16:55:34

+1

好吧,哎呀。事实证明,我的愚蠢的构建任务*是*工作。但如果构建详细程度设置为默认设置Minimal,则Log.LogMessage不会在构建窗口中显示任何内容。 http://social.msdn.microsoft.com/Forums/en/msbuild/thread/9f60e577-a420-4302-ba5f-703a6cae7992 – 2011-03-02 16:57:30

+1

...除非我使用允许指定'MessageImportance.High'的重载,然后它甚至以最小值显示。 – 2011-03-02 17:00:20

回答

6

你是否在你的声明你的自定义任务MSBuild项目文件?你需要这样一行:

<UsingTask AssemblyFile="C:\PathTo\MyTasks.dll" TaskName="MyTasks.HelloWord" /> 

然后MSBuild可以执行你的任务。

+1

我这样做,但我没有意识到TaskName必须是实际的类名称,包括命名空间。这似乎是我的路障。 – 2011-03-02 18:38:02