2012-03-01 71 views
3

默認的MSBuild記錄器可以在控制檯窗口中對輸出行進行很好的顏色編碼 - 如果恰好使用控制檯窗口的默認黑色背景。我發現在控制檯窗口中使用灰色背景上的黑色文字可以讓我的眼睛更加輕鬆。 (白底黑字太亮)可以修改默認MSBUILD記錄器中使用的顏色嗎?

當我們的項目運行MSBUILD時,輸出結果會出現一些灰色的現在難以讀懂的青色部分行。黃色和紅色的線條並不差。

有沒有辦法自定義默認MSBUILD記錄器使用的顏色? 也許調整了VS2010安裝文件中的一些XML文件? (我們使用的是VS2010。)

我找到了MSBUILD參數「consoleloggerparameters」,但它似乎沒有提供這樣的功能。

是否有第三方自定義記錄器可用,可能允許這種自定義或正在編寫我自己的自定義記錄器唯一選項? (我們可以,但是這樣做的時間很難。)

+0

是使用PowerShell的選項嗎? [Linked](http://stackoverflow.com/a/9513340/147211) – KMoraz 2012-03-01 21:26:20

+0

可能。這將如何工作?一些方法來修改或做一個顏色轉換(「使所有青色輸出到控制檯藍色」?) – RobDavenport 2012-03-02 04:42:14

+0

我已經張貼我的鏡頭在這。我認爲PowerShell腳本編寫者可以做得更好。 – KMoraz 2012-03-02 08:47:10

回答

2

顏色基本上是硬編碼的。使用MSBuild 4.0開箱即可完成的操作是在調用MSBuild.exe(有關/clp選件運行MSBuild.exe /?的更多信息)時使用/clp:disableconsolecolor選項完全禁用顏色。使用較舊的MSBuild版本,您可以使用MSBuild.exe arguments 2>&1| findstr /r ".*"。有關更多詳細信息,請參閱this答案。

如果你想有不同的顏色,你需要實現你的own (console) logger,這是不是太辛苦,並用它(/logger:選項,與/noconsolelogger結合,關閉默認控制檯記錄器)。

+0

謝謝。我以前很怕那個。 (但不是每個人都喜歡黑色的控制檯窗口... :)也許在未來的版本。我喜歡彩色輸出,所以我不想禁用它,只是改變它。我會嘗試KMoraz的powershell腳本,看看這對我有用。 – RobDavenport 2012-03-04 19:00:16

+0

編寫自己的記錄器的例子看起來是可以理解的,我也必須看看。感謝您的鏈接。 – RobDavenport 2012-03-04 19:32:36

0

使用PowerShell的,我想PS愛好者可以提供一個更好的劇本:

# 
# Run MSBuild With Custom Color.ps1 
# 
msbuild C:\some_path\your.sln | foreach-object -process { 
    switch ($_){ 
     { $_.tolower().contains("warning")} {Write-Host $_ -foregroundColor DarkBlue} 
     { $_.tolower().contains("error")} {Write-Host $_ -foregroundColor DarkRed} 
     default {Write-Host $_ -foregroundColor Black} 
    } 
} 
+0

謝謝,KMoraz,我會試試看。 – RobDavenport 2012-03-04 18:51:42

相關問題