修剪MSBuild FileLogger输出

时间:2010-11-10 15:40:23

标签: delphi msbuild

如果我编译这个Delphi 2007项目

program MyProject;

{$APPTYPE CONSOLE}

procedure Test;
var
  i: Integer;
begin
  if i = 666 then
    i := 42;
end;

begin
  Test;
end.

命令行

    MSBuild MyProject.dproj /t:Rebuild /p:Configuration=Release /l:FileLogger,Microsoft.Build.Engine;logfile=log.txt;verbosity=minimal

我收到了这个日志文件:

    __________________________________________________
    Projekt C:\Documents and Settings\pcbs1251\My Documents\RAD Studio\Projekte\MyProject\MyProject.dproj (Rebuild-Ziel(e)):

    C:\Program Files\CodeGear\RAD Studio\5.0\bin\dcc32.exe -B -DRELEASE [SNIP] MyProject.dpr   
    CodeGear Delphi für Win32 Compiler-Version 18.5
    Copyright (c) 1983,2007 CodeGear

    MyProject.dpr(10) Hinweis: H2077 Auf 'i' zugewiesener Wert wird niemals benutzt

    c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Borland.Delphi.Targets : warning : MyProject.dpr(9) Warnung: W1036 Variable 'i' ist möglicherweise nicht initialisiert worden
    MyProject.dpr(9) Warnung: W1036 Variable 'i' ist möglicherweise nicht initialisiert worden

    17 Zeilen, 0.00 Sekunden, 11016 Byte-Code, 12156 Byte-Daten.
    Erstellen des Projekts MyProject.dproj beendet.

现在我想将其修改为

    MyProject.dpr(10) Hinweis: H2077 Auf 'i' zugewiesener Wert wird niemals benutzt
    MyProject.dpr(9) Warnung: W1036 Variable 'i' ist möglicherweise nicht initialisiert worden

有没有FileLoggerParameters可以做到这一点?

更新:由于似乎没办法让MSBuild做我想做的事情,我终于编写了一个小的Delphi程序来根据我的需要格式化MSBuild输出。

2 个答案:

答案 0 :(得分:3)

我通常使用grep,sed和awk来做这样的事情。

答案 1 :(得分:2)

试试msbuild /v:m。这会将msbuild命令行详细程度设置为“minimal”。它可能会给你更接近你想要的东西。见'msbuild /?'寻求帮助。

许多命令行工具都有'/ nologo'选项可以提供帮助。也许你可以把它传递给dcc。也许你必须编辑.targets文件。