2010-08-09 11 views
5

Próbuję napisać projekt MSBuild, który wygeneruje dokumentację html przy użyciu doxygen. Nie mogłem znaleźć nic na ten temat w Internecie, z wyjątkiem jednego example, który wydaje się niekompletny; nie analizuje ostrzeżeń doxygen.MSBuild i IgnoreStandardErrorWarningFormat

Znalazłem, że zadanie MSBuild's Exec ma parametry takie jak IgnoreStandardErrorWarningFormat i CustomWarningRegularExpression. Co to jest "Standardowy format ostrzeżeń/ostrzeżeń" i jakie rodzaje RE są dozwolone w tych właściwościach?

Edycja: ah, „wewnątrz silnika Microsoft Build” błędnie opisuje ją jako własność w .NET 3.5, gdzie jest faktycznie od 4. Nie ma sensu dla mnie ...

Odpowiedz

11

standardowy format msbuild błąd/ostrzeżenie jest opisany tutaj: http://blogs.msdn.com/b/msbuild/archive/2006/11/03/msbuild-visual-studio-aware-error-messages-and-message-formats.aspx.

W skrócie, format:

MSBuild rozpoznaje komunikaty o błędach i ostrzeżenia, które zostały specjalnie sformatowane przez wielu narzędzi wiersza polecenia, które zwykle napisać do konsoli. Na przykład spójrz na następujące komunikaty o błędach - wszystkie są poprawnie sformatowane, aby były przyjazne dla MSBuild i Visual Studio.

Main.cs(17,20): warning CS0168: The variable 'foo' is declared but never used 
C:\dir1\foo.resx(2) : error BC30188: Declaration expected. 
cl : Command line warning D4024 : unrecognized source file type 'foo.cs', object file assumed 
error CS0006: Metadata file 'System.dll' could not be found. 

Te wiadomości potwierdzić specjalnym formacie, który jest pokazany poniżej i zawierają 5 części - kolejność tych części są ważne i nie powinno się zmieniać:

Canonical Errors/Warnings

Origin (Wymagane)

Pochodzenie może być puste. Jeśli jest obecny, początkiem jest zwykle nazwa narzędzia, np. "Cl" w jednym z przykładów. Ale może to być również nazwa pliku, np. "Main.cs" pokazana w innym przykładzie. Jeśli jest to nazwa pliku, to musi być to bezwzględny lub względny nazwy pliku, a następnie opcjonalnie nawiasach informacji linii/kolumnie w jednym z następujących sposobów:

(line) or (line-line) or (line-col) or (line,col-col) or (line,col,line,col) 

Podkategoria (opcjonalnie)

Podkategoria służy do dalszego klasyfikowania kategorii i nie powinna być zlokalizowana.

Kategoria (Wymagane)

Kategoria musi być albo 'błąd' lub 'ostrzeżenie'. Sprawa nie ma znaczenia. Podobnie jak pochodzenie, kategoria nie może być zlokalizowana.

Code (Wymagane)

Kod identyfikuje aplikację specyficzny kod błędu/kod ostrzegawczy. Kod nie może być zlokalizowany i nie może zawierać spacji.

Tekst (opcjonalnie)

Przyjazny dla użytkownika tekst, który wyjaśnia błąd i musi być zlokalizowane jeśli zaspokoić wielu lokalizacjach.

2

nie mogę znaleźć na dokumenty to teraz, ale myślę, że standardowy format error jest coś takiego jak

.*(\d+(,\d+(,\d+,\d+)?)?)?: error .*:.* 
.*(\d+(,\d+(,\d+,\d+)?)?)?: warning .*:.* 

przykładów:

c:\somefile.txt(10,20,10,30): error CMD1234: blarg 
c:\somefile.txt(10,20): error CMD1234: yadda yadda 
c:\somefile.txt: warning ARG5678: blah blah 
+0

Nie mogłem go też znaleźć. Ktoś? – liori

2

Format jest w pełni udokumentowany w kodzie źródłowym MSBuild here.

+0

Ah, niebezpieczeństwa oprogramowania open-sourcing. Dziękuję Ci! – liori