Formát nástroje MSBuild a sady Visual Studio pro diagnostické zprávy
Při spuštění nástroje, který vypíše nějaký text, nástroj MSBuild zkontroluje text, jestli obsahuje chyby a upozornění. Mnoho nástrojů používá k hlášení těchto zpráv známý formát. Ve výchozím nastavení nástroj MSBuild zkoumá text a hlásí chyby a/nebo upozornění na základě výstupu. Toto chování lze rozšířit nebo zakázat pomocí těchto parametrů pro Exec
úlohu: IgnoreStandardErrorWarningFormat
, CustomErrorRegularExpression
a CustomWarningRegularExpression
.
Poznámka:
Pokud se rozhodnete k detekci chyb a upozornění použít vlastní regulární výraz, měli byste vědět, že nástroj MSBuild se podívá na výsledek po jednom řádku. I když by vlastní regulární výraz odpovídal něčemu na více řádcích, nebude se chovat tímto způsobem kvůli tomu, jak NÁSTROJ MSBuild tento text zpracovává.
Podívejte se na následující čtyři zprávy, které jsou všechny správně naformátované a budou rozpoznány nástrojem MSBuild a Microsoft Visual Studio:
Main.cs(17,20): warning CS0168: The variable 'x' is declared but never used
C:\dir1\strings.resx(2) : error BC30188: Declaration expected.
cl : Command line warning D4024 : unrecognized source file type 'file1.cs', object . . .
error CS0006: Metadata file 'System.dll' could not be found.
Tyto zprávy odpovídají speciálnímu pětidílnému formátu uvedenému zde. Pořadí těchto částí je důležité a nemělo by se měnit.
Origin
: : Subcategory
Category
Code
Text
Příklad:
c1 : Command line warning D4024 : unrecognized source file type 'test.xyz'
Origin: c1
Subcategory: Command line
Category: warning
Code: D4024
Text: unrecognized source file type 'test.zyz'
Jednotlivé součásti tohoto formátu jsou popsány takto:
Zdroj (povinný) Původ může být prázdný. Pokud existuje, zdroj je obvykle název nástroje, například
cl
v jednom z příkladů. Může to ale být také název souboru, například "Main.cs", jak je znázorněno v jiném příkladu. Pokud se jedná o název souboru, musí se jednat o absolutní nebo relativní název souboru následovaný volitelnými informacemi o řádku nebo sloupci v závorkách v jednom z následujících formulářů:(line) or (line-line) or (line-col) or (line,col-col) or (line,col,line,col)
Řádky a sloupce začínají na 1 v souboru; to znamená, že začátek souboru je 1 a levý sloupec je 1. Pokud je zdrojem název nástroje, nesmí se měnit na základě národního prostředí; to znamená, že musí být národní prostředí neutrální.
Podkategorie (volitelné) slouží ke klasifikaci samotné kategorie, neměla by být lokalizována.
Kategorie (povinné) Kategorie musí být buď "chyba", nebo "upozornění". Na případu nezáleží. Stejně jako u původu nesmí být kategorie lokalizována.
Kód (volitelný) Kód identifikuje kód chyby nebo upozornění specifický pro aplikaci. Kód nesmí být lokalizován a nesmí obsahovat mezery.
Text uživatelsky přívětivý text, který chybu vysvětluje, a musí být lokalizován, pokud se staráte o více národních prostředí.
Když nástroj MSBuild volá nástroje příkazového řádku (například csc.exe
nebo vbc.exe
), podívá se na výstup vygenerovaný nástrojem do standardních a standardních chybových proudů. Všechny řádky, které odpovídají formátu chyby, který jsem právě popsal, budou zpracovány speciálně; to znamená, že řádky, které jsou rozpoznány jako chyby nebo upozornění, budou převedeny na chyby sestavení a upozornění v uvedeném pořadí. Abyste viděli skutečnou výhodu, musíte sestavovat v rámci vývojového nástroje, jako je Visual Studio nebo VS Code. Vzhledem k tomu, že nástroj MSBuild tyto zprávy zpracovává speciálně, zaprotokolují se jako upozornění a chyby první třídy v seznamu úkolů sady Visual Studio. Pokud zdroj určuje informace o řádku nebo sloupci, poklikáním na zprávu přejdete na zdroj chyby v souboru pro přesměrování.