Как в компиляторе Roslyn установить версию .Net Framework? - PullRequest
0 голосов
/ 20 сентября 2018

Возникла проблема, при компиляции динамического кода не могу поставить версию фреймворка.

Вот код компиляции:

using Microsoft.CodeDom.Providers.DotNetCompilerPlatform;
using System.CodeDom.Compiler;

private static readonly Dictionary<string, string> ProviderOptions = new Dictionary<string, string>
{
  { "CompilerVersion", "v4.0" }
};

using (var provider = new CSharpCodeProvider())
{
  .. setting compile
  CompilerResults ResultLog = provider.CompileAssemblyFromSource(Params, SourceCode);
}

Пытаюсь добавить какследующее:

using (var provider = new CSharpCodeProvider(ProviderOptions))

или

using (var provider = new CSharpCodeProvider((ICompilerSettings)ProviderOptions))

Но я получаю сообщение об ошибке:

System.InvalidCastException: Не удалось привести тип объекта "System.Collections.Generic.Dictionary`2 [System.String, System.String] "к типу" Microsoft.CodeDom.Providers.DotNetCompilerPlatform.ICompilerSettings ".

В отличие от CodeDom, в котором возможноставь так версию в Roslyn почему-то нельзя, как решить?

...