2010-08-09 22 views
5

Sto provando a scrivere un progetto MSBuild che genererà la documentazione html utilizzando doxygen. Non sono riuscito a trovare nulla in rete, ad eccezione di uno example, che sembra incompleto; non analizza gli avvertimenti Doxygen.MSBuild e IgnoreStandardErrorWarningFormat

Ho trovato che l'attività MSBuild's Exec ha parametri come IgnoreStandardErrorWarningFormat e CustomWarningRegularExpression. Che cos'è il "Formato standard di errore/avviso" e che tipo di RE sono consentiti in queste proprietà?

Edit: ah, "all'interno del motore di Microsoft Build" a torto la descrive come proprietà in .NET 3.5, dove in realtà è da 4. Non possono essere utilizzate per me ...

risposta

11

il formato errore msbuild/avvertimento standard viene descritto qui: http://blogs.msdn.com/b/msbuild/archive/2006/11/03/msbuild-visual-studio-aware-error-messages-and-message-formats.aspx.

In poche parole, il formato è:

MSBuild riconosce i messaggi di errore e gli avvisi che sono stati appositamente formattate da molti strumenti a riga di comando che in genere scrivono alla console. Ad esempio, dai un'occhiata ai seguenti messaggi di errore: sono tutti formattati correttamente per essere compatibili con MSBuild e 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. 

Questi messaggi confermano al formato speciale che viene mostrato in basso, e comprendono 5 parti - l'ordine di queste parti sono importanti e non dovrebbe cambiare:

Canonical Errors/Warnings

origine (obbligatorio)

L'origine può essere vuota. Se presente, l'origine è solitamente un nome di strumento, come "cl" in uno degli esempi. Ma potrebbe anche essere un nome di file, come "Main.cs" mostrato in un altro esempio. Se si tratta di un nome di file, allora deve essere un assoluto o un nome di file relativo, seguito da un'informazione di linea/colonna parentesi facoltativa in una delle seguenti forme:

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

Sotto (opzionale)

La sottocategoria viene utilizzata per classificare ulteriormente la categoria e non deve essere localizzata.

Categoria (Obbligatorio)

Categoria devono essere 'errore' o 'avvertimento'. Il caso non ha importanza. Come l'origine, la categoria non deve essere localizzata.

Codice (Obbligatorio)

Codice individua un errore specifico codice/avviso di applicazione. Il codice non deve essere localizzato e non deve contenere spazi.

Testo (opzionale)

utente testo amichevole che spiega l'errore e deve essere localizzato se si rivolgono a più locale.

2

Non riesco a trovare documenti su adesso, ma penso che il formato standard error è qualcosa di simile

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

esempi:

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

Non riuscivo nemmeno a trovarlo. Chiunque? – liori

2

Il formato è completamente documentato nel codice sorgente MSBuild here.

+0

Ah, i pericoli del software open source. Grazie! – liori