2011-06-15 39 views
2

我有一個繼承的MSBuild腳本,它調用了我不允許更改的目標。但是,其中一些目標會調用目前在輸出窗口中過於冗長的方法 - 例如,<Copy>任務被使用得太多,以至於輸出的內容正在耗盡其他任何相關消息。在MSBuild中重寫繼承的任務

由於我無法訪問調用目標<Copy>的目標,因此我無法將其切換爲較爲冗長的內容。我玩過/verbosity開關,但minimal給我輸出太少,而normal給我太多了。

是否有任何其他方式可以特別影響<Copy>的詳細程度,或者一般情況下可以影響MSBuild的詳細程度?

回答

1

您可以創建自己的記錄器。這有點牽扯,但基本上可以讓你精確調整你想看到的信息。最簡單的做法是覆蓋默認的記錄器。

另一個更簡單的選項是覆蓋複製任務。創建名爲Copy的自定義任務,並使用UsingTask聲明引用它。這個聲明需要首先出現,我認爲(不記得任務覆蓋是第一次勝利還是最後一次勝利)。再次,您可以在MSBuild程序集中設置默認的複製任務的子類,並覆蓋執行,或者只是自己推出。在任務,可以調整通過調用Log.LogMessage並供給每個消息的水平與各種消息有關的詳細級別,這樣就可以控制哪些命令行冗長他們將與出現。

+0

我周圍一點點打,看看我能想出如何重寫複製任務,但我以前從未編寫過一個MSBuild任務,不知道應該在execute()方法等會去你願意提供一個簡單的實現,不僅會複製,然後我可以添加任何東西,我需要嗎?我會非常感激。 =) – 2011-06-16 08:30:25