В относительно небольшом решении (40 проектов) я пытаюсь реализовать пакет Nuget Microsoft.Net.Compilers. Я сделал это через файл Directory.build.props:
<Project>
<ItemGroup>
<PackageReference Include = "Microsoft.Net.Compilers" Version = "2.8.0"/>
<!-- some other packages down below here that where already there -->
</ItemGroup>
</Project>
Перед использованием пакета потребуется около 18 секунд, чтобы скомпилировать весь проект с нуля в Visual Studio 2017 (15.7.0). После внедрения пакета это займет около 80 секунд. Я могу представить, что пакет nuget сделает работу немного медленнее. Но я бы не ожидал, что это займет в 4 раза больше времени.
Во время поиска в Интернете я обнаружил, что https://github.com/dotnet/roslyn/issues/12360 пользователь описывает более или менее те же симптомы, которые я заметил (несколько csc.exe заявляют о полной мощности процессора при компиляции. Разница в том, что у меня есть VBCSompiler.exe, но он требует 0% cpu.) Я пробовал обходной путь в этом обсуждении установки для свойства UseSharedCompilation значения true в моих файлах csproj (свойство раньше не существовало), но это не помогло.
TLTR: Есть ли причина, по которой Microsoft.Net.Compilers значительно увеличивает время компиляции? Или, может быть, способ увидеть, куда все время идет?
сводка версии:
@RavenDreamer нет, только добавил строку ссылки на пакет в файл Directory.build.props. Удаление этой строки и пакета nuget снова ускорит сборку. Позже я также отредактировал файлы csproj с помощью свойства UseSharedCompilation, но это не дало заметного эффекта.





Изменили ли вы какую-либо другую часть настройки сборки?