RunCodeAnalysis = true не работает в командной строке (MSBuild) - PullRequest
10 голосов
/ 18 октября 2011

Я пытаюсь получить msbuild для вывода информации анализа кода, как это происходит в VS. У меня есть конфигурация для моего проекта под названием «CodeAnalysis» в VS, которая настроена для запуска анализа кода при сборке (с минимальным набором правил). В любом случае, это нормально работает в VS, но когда я запускаю msbuild из командной строки, он показывает только основные предупреждения о сборке и вообще не запускает анализ кода. Кто-нибудь знает, почему это происходит?

Конфигурация в файле проекта:

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CodeAnalysis|AnyCPU'">
<OutputPath>bin\</OutputPath>
<CodeAnalysisRuleSet>C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\Rule Sets\MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>true</RunCodeAnalysis>

Командная строка:

msbuild Solution.sln /p:Configuration=CodeAnalysis /t:Rebuild

Я тоже пробовал:

msbuild Solution.sln /p:RunCodeAnalysis=true /t:Rebuild

Ответы [ 3 ]

9 голосов
/ 08 января 2013

По умолчанию MSBuild использует значение, настроенное в файле проекта, но вы можете переопределить его в командной строке msbuild, используя аргумент

/p:RunCodeAnalysis=true

чтобы всегда запускать анализ кода. Наоборот, используйте

/p:RunCodeAnalysis=false

для отключения анализа кода.

Смотри также:

1 голос
/ 19 марта 2012

На компьютере должна быть установлена ​​Visual Studio.Есть много сценариев, которые включены через строку csproj:

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

0 голосов
/ 29 июня 2016

После того, как я столкнулся с той же проблемой, я начал с получения (чрезмерно) подробного журнала и передал его в файл, который я мог проверить:

msbuild.exe ProjectFile.csproj /v:diag > bld.log

В этом файле я заметил, что цель анализа кода была пропущена, поскольку RunCodeAnalysisOnThisProject был оценен как true. Итак, в csproj я включил следующую строку в первую группу свойств:

<RunCodeAnalysisOnThisProject>true</RunCodeAnalysisOnThisProject>

, который сделал это для меня.

...