Как запустить компилятор C# 4.0 с классом CSharpCodeProvider?
Я использую этот фрагмент
CSharpCodeProvider codeProvider =
new CSharpCodeProvider(
new Dictionary<String, String> { { "CompilerVersion", "v3.5" } });
для компилятора 3.5 для динамической компиляции кода.
Я предполагаю, что я должен использовать "v4.0"
перейти на 4.0 компилятор?
2 ответа
Решение
Помимо указания "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+.
Надеюсь, это поможет.