Более новые версии компилятора больше не поставляются как часть собственно .NET Framework и поэтому не могут быть доступны по умолчанию через устаревший API CodeDOM (который включает Microsoft.CSharp.CSharpCodeProvider
).
Вместо этого, если вы хотите использовать API CodeDOM с более новыми компиляторами, вы должны использовать Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider
, который является подклассом Microsoft.CSharp.CSharpCodeProvider
. Этот класс доступен в пакете nuget Microsoft.CodeDom.Providers.DotNetCompilerPlatform.
Для не веб-приложений вам также нужно указать конфигурацию или переменную среды, в которой указан путь к компилятору C #, который вы хотите использовать (копия поставляется в пакете nuget, так что вы можете использовать его). Подробнее см. https://github.com/aspnet/RoslynCodeDomProvider.