2011-03-02 76 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