Как я могу подавить все предупреждения компилятора и анализа кода из msbuild в командной строке?

Это было задано, но не было ответа. Ответ (использовать /warn:1) не работает для msbuild.exe, только csc.exe. Возможно, я что-то упустил между csc и msbuild?

Я хотел бы подавить все предупреждения компилятора и предупреждения анализа кода (например, "Переменная 'variableNameHere' назначена, но ее значение..." или Предупреждение анализа кода: CA1805: Microsoft.Performance:...), когда я использую командная строка msbuild. Я не хочу изменять файл решения. В очень большом решении, которое я создаю, есть несколько сотен предупреждений - их исправление выходит за рамки моего проекта.

Я старался /v:quiet но это не сработало.

Есть ли способ сделать это через командную строку?

Обновление: это:

C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe C:\Dev\ReallyBigSolution.sln /p:NoWarn=true /p:NoWarn=CA1031

Абсолютно не работает. Я все еще получаю сотни предупреждений, включая одно, которое я специально заблокировал (CA1031).

С помощью /p:RunCodeAnalysis=Never или же /p:RunCodeAnalysis=false по-видимому, не подавляет предупреждения или ошибки анализа кода.

6 ответов

Решение

Может использовать флаг nowarn на компиляторе, который соответствует <NoWarn> свойство в файле.csproj. Так что, может быть msbuild /p:NoWarn="37;68" отключит эти номера предупреждений (еще не пробовал).

Или использовать

http://msdn.microsoft.com/en-us/library/13b90fz7.aspx

полностью отключить предупреждения. Я не знаю название объекта, попробуйте /p:Warn=0,

Редактировать: читать комментарии до конца; кажется, что на самом деле избавиться от всех этих предупреждений невозможно.

Я знаю, что это старый пост, но он направил меня в нужное русло, и, добавив следующее в мой вызов msbuild, он подавил все предупреждения и выходные данные при сборке проекта. У меня есть это в командном файле, так что единственный вывод, который я получаю, я считаю, это конечные результаты и любые сообщения, которые я получаю с помощью echo. Секрет был в ключе / clp. Так что я посмотрел это и вставил все те, которые подавляют вывод. Каждый из них избавлялся от большего, но все еще появлялись желтые предупреждения, и когда я добавил переключатель ErrorsOnly, больше не было выходных данных.

call msbuild /clp:NoSummary;NoItemAndPropertyList;ErrorsOnly /verbosity:quiet /nologo

Попробуй это:

msbuild.exe C:\Dev\BigSolution.sln /p:WarningLevel=0 /p:RunCodeAnalysis=false

Я пробовал это и не могу подавить предупреждения, если только я не перечислю их в свойстве /NoWarn для msbuild.exe

http://social.msdn.microsoft.com/Forums/en-US/tfsbuild/thread/96b3ea2e-92ed-4483-bbfe-a4dda3231eb9

Согласно этому, это не может быть подавлено.

Похоже, это невозможно...

Предупреждения с префиксом MSB выдаются MSBuild. В настоящее время мы не можем подавить предупреждения MSBuild.

Другие вопросы по тегам