如果我编译这个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输出。
答案 0 :(得分:3)
我通常使用grep,sed和awk来做这样的事情。
答案 1 :(得分:2)
试试msbuild /v:m
。这会将msbuild命令行详细程度设置为“minimal”。它可能会给你更接近你想要的东西。见'msbuild /?'寻求帮助。
许多命令行工具都有'/ nologo'选项可以提供帮助。也许你可以把它传递给dcc。也许你必须编辑.targets文件。