Наша команда в настоящее время мигрирует с синтаксиса C # 5.0 на C # 6.0, поэтому вместо устаревшего должен использоваться компилятор Roslyn.
Мы должны использовать «csc.exe» как часть компиляции комплексного решения.процесс.Команды сборки выглядят так:
c:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe -nologo -target:library -out:c:\repo\bin64\deb\common.dll @.\rspE0FF.tmp
Выполнение этой команды занимает ~ 400 мс
"rspE0FF.tmp" содержимое выглядит так (оно содержит гораздо больше * .csфайлы, однако, это не имеет значения, это воспроизводимо на любом наборе файлов):
"c:\repo\shared\common\estimation\complexjob.cs"
"c:\repo\shared\common\stringdecorator.cs"
"c:\repo\shared\common\tplextensions.cs"
"/reference:mscorlib.dll" "/reference:System.dll" "/reference:System.Data.dll" "/reference:System.Xml.dll" "/reference:System.ServiceModel.Activation.dll" "/reference:System.IdentityModel.dll" "/reference:System.Data.Entity.dll"
Когда используется компилятор Roslyn, время выполнения выдает ~ 4100ms Команда одинакова, простоcsc.exe вызывается из папки пакета:
c:\NewRepo\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\tools\RoslynLatest\csc.exe -nologo -target:library -out:c:\repo\bin64\deb\common.dll @.\rspE0FF.tmp
Мы должны построить решение, последовательно выполняя сотни таких команд csc.exe, как эта.Общее время компиляции выросло с 2 минут до 8 минут.
Ожидается ли это снижение производительности?
Любые советы о том, как это настроить?