Какая версия компилятора C # для компиляции C # 7.3 с классом CSharpCodeProvider? - PullRequest
0 голосов
/ 08 мая 2018

Я хотел бы использовать класс Microsoft.CSharp.CSharpCodeProvider для компиляции кода C # 7.3. Версия компилятора указывается в IDictionary, который берется в качестве входных данных при создании нового CSharpCodeProvider; например, {"CompilerVersion", "v4.0"}. «v4.0» недостаточно, поскольку он не распознает v7.3 как параметр компилятора.

1 Ответ

0 голосов
/ 08 мая 2018

Более новые версии компилятора больше не поставляются как часть собственно .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.

...