Возникла проблема, при компиляции динамического кода не могу поставить версию фреймворка.
Вот код компиляции:
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
почему-то нельзя, как решить?