【发布时间】:2011-12-26 00:41:29
【问题描述】:
我正在尝试使用 .net 3.5 应用程序中的 CSharpCodeProvider 编译 .cs 文件,并且我想以 .net4 编译器为目标,但我收到此错误“无法找到编译器可执行文件 csc.exe”。我安装了.net4。下面是我使用的代码,为简洁起见省略了一些行。当我将 CompilerVersion 设置为“v3.5”时,我没有收到任何错误。
CompilerResults results = null;
using (CSharpCodeProvider provider = new CSharpCodeProvider(new Dictionary<string, string>() {{"CompilerVersion", "v4.0"},}))
{
CompilerParameters options = new CompilerParameters();
...
results = provider.CompileAssemblyFromFile(options, Directory.GetFiles(path, "*.cs", SearchOption.AllDirectories));
}
【问题讨论】:
-
听起来像一个路径问题.. .net 3.5 程序集和 4.0 尤其是在 GAC 方面,例如不共享相同的 GAC 检查您为初学者安装 .net 4.0 框架的路径。 ..
-
.net4 安装在 C:\Windows\Microsoft.NET\Framework\v4.0.30319\ 和 .net3.5 安装在 C:\Windows\Microsoft.NET\Framework\v2.0.50727 \
-
在传递给构造函数的字典中使用“CompilerVersion”。 msdn.microsoft.com/en-us/library/bb537926.aspx
-
汉斯这就是我正在做的事情。您必须在我发布的示例中向右滚动才能看到它。
-
.NET 4.0 知道如何找到 v2.0、v3.5 和 v4.0 编译器。 .NET 3.5 知道如何找到 v2.0 和 v3.5 编译器。但是没听说有v4.0版本。
标签: c# .net csharpcodeprovider