В относительно небольшом решении (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% процессора.) В этом обсуждении я попытался обойти настройку свойства UseSharedCompilation
в моих файлах csproj (свойство раньше не существовало), но это не помогло.
транслятор:
Есть ли какая-то причина, по которой Microsoft.Net.Compilers значительно увеличивает время компиляции? Или, возможно, способ увидеть, куда все время идет?
Краткое изложение версии:
- Visual studio версия: 15.7.0
- C # уровень: 7
- Версия Microsoft.Net.Compilers: 2.8.0
- мс .net 4.6.1