MSBuild распознает сообщения об ошибках и предупреждения, которые были специальноотформатированный многими инструментами командной строки, которые обычно пишут в консоль.Например, взгляните на следующие сообщения об ошибках - они все правильно отформатированы, чтобы быть совместимыми с MSBuild и 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.
Эти сообщения подтверждаются специальным форматом, который показан ниже, и состоят из 5 частей -порядок этих частей важен и не должен изменяться:

Источник (обязательно)
Источник может быть пустым.Если присутствует, источником обычно является имя инструмента, например, «cl» в одном из примеров.Но это также может быть имя файла, например «Main.cs», показанный в другом примере.Если это имя файла, то оно должно быть абсолютным или относительным именем файла, за которым следует необязательная заключенная в скобки информация о строке / столбце в одной из следующих форм:
(line) or (line-line) or (line-col) or (line,col-col) or (line,col,line,col)
Подкатегория (необязательно))
Подкатегория используется для дальнейшей классификации самой категории и не должна быть локализована.
Категория (обязательно)
Категория должнабыть либо «ошибка» или «предупреждение».Дело не имеет значения.Как и происхождение, категория не должна быть локализована.
Код (обязательно)
Код определяет код ошибки приложения / код предупреждения.Код не должен быть локализован и не должен содержать пробелов.
Текст (необязательно)
Удобный текст, объясняющий ошибку, а должен быть локализованным, если вы обслуживаете несколько локалей.