Как запустить компилятор C # 4.0 с классом CSharpCodeProvider? - PullRequest
8 голосов
/ 25 мая 2010

Я использую этот фрагмент

CSharpCodeProvider codeProvider =
   new  CSharpCodeProvider(
      new Dictionary<String, String> { { "CompilerVersion", "v3.5" } });

для компилятора 3.5 для динамической компиляции кода.

Я предполагаю, что мне нужно использовать "v4.0" для переключения на компилятор 4.0?

Ответы [ 2 ]

4 голосов
/ 19 февраля 2014

Помимо указания "v4.0", вам необходимо добавить ссылку "Microsoft.CSharp.dll", чтобы использовать ключевое слово "dynamic".

var codeProvider = new Microsoft.CSharp.CSharpCodeProvider(
new Dictionary<string, string> { { "CompilerVersion", "v4.0" } });
var parameters = new System.CodeDom.Compiler.CompilerParameters 
{
    GenerateInMemory = true,
    GenerateExecutable = false,
    IncludeDebugInformation = true,
    TreatWarningsAsErrors = false
};
// Here add more referenced assemblies
parameters.ReferencedAssemblies.Add("Microsoft.CSharp.dll");

Не забудьте скомпилировать решение с использованием Framework 4.0 +.

Надеюсь, это поможет.

4 голосов
/ 25 мая 2010

Это действительно v4.0

...