How do I run C# 4.0 compiler with CSharpCodeProvider class?
I'm using this snippet
CSharpCodeProvider codeProvider =
new CSharpCodeProvider(
new Dictionary<String, String> { { "CompilerVersion", "v3.5" } });
for the 3.5 compiler for dynamic code compilation.
I'm ass开发者_开发百科uming I should use "v4.0"
to switch to the 4.0 compiler?
It is indeed v4.0
Besides specifying "v4.0", you will need to add the reference "Microsoft.CSharp.dll" in order to use the "dynamic" keyword.
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");
Don't forget to compile the solution using the Framework 4.0+.
I hope this helps.
精彩评论