Как я могу подавить все предупреждения компилятора и анализа кода из 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.