MSBuild и IgnoreStandardErrorWarningFormat - PullRequest
       3

MSBuild и IgnoreStandardErrorWarningFormat

7 голосов
/ 09 августа 2010

Я пытаюсь написать проект MSBuild, который будет генерировать HTML-документацию с использованием doxygen. Я не мог найти ничего об этом в сети, кроме одного примера , который кажется неполным; он не анализирует предупреждения о кислороде.

Я обнаружил, что Задача MSBuild Exec имеет такие параметры, как IgnoreStandardErrorWarningFormat и CustomWarningRegularExpression. Что такое «стандартный формат ошибок / предупреждений» и какие типы RE разрешены в этих свойствах?

Редактировать: ах, «Внутри Microsoft Build Engine» ошибочно описывает его как свойство в .NET 3.5, где оно на самом деле из 4. Бесполезно для меня ...

Ответы [ 3 ]

14 голосов
/ 03 марта 2011

Стандартный формат ошибки / предупреждения msbuild описан здесь: http://blogs.msdn.com/b/msbuild/archive/2006/11/03/msbuild-visual-studio-aware-error-messages-and-message-formats.aspx.

В двух словах, формат:

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 частей -порядок этих частей важен и не должен изменяться:

Canonical Errors/Warnings

Источник (обязательно)

Источник может быть пустым.Если присутствует, источником обычно является имя инструмента, например, «cl» в одном из примеров.Но это также может быть имя файла, например «Main.cs», показанный в другом примере.Если это имя файла, то оно должно быть абсолютным или относительным именем файла, за которым следует необязательная заключенная в скобки информация о строке / столбце в одной из следующих форм:

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

Подкатегория (необязательно))

Подкатегория используется для дальнейшей классификации самой категории и не должна быть локализована.

Категория (обязательно)

Категория должнабыть либо «ошибка» или «предупреждение».Дело не имеет значения.Как и происхождение, категория не должна быть локализована.

Код (обязательно)

Код определяет код ошибки приложения / код предупреждения.Код не должен быть локализован и не должен содержать пробелов.

Текст (необязательно)

Удобный текст, объясняющий ошибку, а должен быть локализованным, если вы обслуживаете несколько локалей.

4 голосов
/ 01 апреля 2017

Формат полностью документирован в исходном коде MSBuild здесь .

3 голосов
/ 10 августа 2010

Я не могу найти документы на нем прямо сейчас, но я думаю, что стандартный формат ошибок - что-то вроде

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

примеры:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...