Анализаторы Roslyn устанавливаются как пакеты nuget, которые являются зависимостями анализаторов FxCop (также устанавливаются как пакеты nuget).
Я включил полный анализ решения, как указано здесь: Как включить и отключить полный анализ решения для управляемого кода.
У меня есть довольно большое решение, в котором большинство проектов используют анализаторы FxCop / Roslyn, а Visual Studio отлично собирает, обычно менее чем за минуту.
Однако при запуске msbuild через командную строку с помощью:
"C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/MSBuild/15.0/Bin/MSBuild.exe" "C:\Source\MySolution\MySmartClient.sln" /p:Configuration=Develop;Platform="Any CPU" /
t:Build
Создание решения занимает от 4 до 15 минут. То же самое и на сервере сборки, который использует ту же команду.
Я пробовал /p:RunCodeAnalysis=False
, и это не помогло. Я также использовал монитор процессов для имитации команды msbuild, которую VS отправляет в msbuild без изменений.
И, согласно этому документу: Как: включить и отключить автоматический анализ кода для управляемого кода
Флажок «Включить анализ кода при сборке» влияет только на статический анализ кода. Это не влияет на анализаторы кода Roslyn, которые всегда выполняются при сборке, если вы установили их как пакет NuGet.
Такое чрезмерное время сборки непрактично. Есть ли способ отключить при использовании msbuild через командную строку?