Possible Duplicate:
Using CSharpCodeProvider with .net 4.5 beta
For .net 3.5 I pass v3.5 to CSharpCodeProvider, when I pass v4.5 to CSharpCodeProvider in a v4.5 app I get InvalidOperationException
"Compiler executable file csc.exe cannot be found."
Anyone any idea what's going on here, what am I doing wrong?
Code to reproduce . . .
using Microsoft.CSharp;
using System;
using System.CodeDom.Compiler;
using System.Collections.Generic;
namespace Console1
{
class Program
{
static void Main(string[] args)
{
var options = new Dictionary<string, string>{{"CompilerVersion", "v4.5"}};
var cs = new CSharpCodeProvider(options);
var compilerParams = new CompilerParameters();
var r = cs.CompileAssemblyFromSource(compilerParams , "namespace ns { class program { public static Main(string[] args) { System.Console.WriteLine(\"Hello world\"); } } }");
}
}
}
This is by design, something you can see when you navigate to c:\windows\microsoft.net\framework with Windows Explorer. Note that you'll only see a subdirectory named v4.0.30319, there is no v4.5 subdirectory. Or in other words, .NET 4.5 is a true in-place update for version 4.0 and the C# v5 compiler replaces the v4 compiler.
You'll need to specify "v4.0".
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With